Добрый день.
Подскажите пожалуйста как реализовать поиск по деталям?
А именно как реализовать выполнение подобного запроса:
SELECT
acc.Id FROM [dbo].[Account] acc, [dbo].[AccountCommunication] comm
WHERE
comm.AccountId = acc.Id AND
comm.Number LIKE '%123456%'
GROUP BY(acc.id)
чтобы в реестре вывелись записи по заданному условию?
Сейчас сделал так:
var dataSource = Page.DataSource;
Select selectPhone = new Select(Page.UserConnection).Top(15)
.Column("Account","Id")
.From("Account")
.Join(JoinType.Inner, "AccountCommunication")
.On("Account", "Id").IsEqual("AccountCommunication", "AccountId")
.Where("AccountCommunication", "Number").ConsistsWith(Column.Const(Page.PhoneSearchEdit.Value.ToString()))
as Select;
var selectExecute = selectPhone.ExecuteReader(Page.UserConnection.EnsureDBConnection());
Page.TreeGrid.Clear();
while (selectExecute.Read())
{
Page.DataSource.LoadRow(new Guid(selectExecute[0].ToString()));
}
Page.ThrowEvent("LoadRowsByFilter");
return true;
но мне кажется что так не верно.
Возникает две ошибки:
1. Без ограничения количества записей в селекте, возникает ошибка. Очень много вызовов DataSource.Load
2. Перестают обновляться детали.