Linq-to-Entities ~ Как использовать фильтр «Добавить» для добавления дочерней таблицы, как я могу фильтровать свойства дочерней таблицы? - PullRequest
1 голос
/ 29 июня 2010

Есть ли способ применить условия Where к включенным дочерним таблицам?

Пример: У меня есть набор сущностей Customers и набор сущностей Addresses, и я соответствующим образом украсил класс метаданных атрибутом [Include]. Я могу легко фильтровать по свойству Клиента, например по фамилии ...

public IQueryable<Alphagram> GetCustomersWithAddresses()
{
    return this.ObjectContext.Customers.Include("Address")
         .Where(w => w.LastName == "Smith")
}

Но, скажем, я также хотел отфильтровать свойство дочерней таблицы адресов, например Address.City? Адреса существуют как собственность клиентов, но intellisense не выбирает ни один из столбцов адресов.

Мне лучше использовать соединения вместо включения?

1 Ответ

1 голос
/ 29 июня 2010

Вы можете сделать что-то вроде этого:

public IQueryable<Alphagram> GetCustomersWithAddresses()
{
    return this.ObjectContext.Customers.Include("Address")
         .Where(w => w.LastName == "Smith" && w.Address.Any(a => a.City == "Some city") /* w.Address.All(...) */)
}

Теперь все зависит от того, чего вы хотите достичь и как связаны клиенты и адреса (1-1, 1- * и т. Д.).

Привет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...