Фильтр EntityDataSource по значению ассоциации - PullRequest
4 голосов
/ 18 октября 2008

Мне действительно нравится Entity Framework, но есть некоторые ключевые моменты, которые бросают мне вызов. Может кто-нибудь сказать мне, как отфильтровать EntityDataSource по столбцу Ассоциации? EF скрывает значения FK и вместо этого имеет свойство Association. Учитывая сущность, Person, с ассоциацией PersonType, я бы ожидал, что что-то подобное сработает, если я захочу отфильтровать свою сущность Person по типу:

GridDataSource.EntityTypeFilter = "it.PersonType.PersonTypeID = 1";

или

GridDataSource.Where = "it.PersonType.PersonTypeID = '1'";

или даже

GridDataSource.WhereParameters.Add(new Parameter("it.PersonType.PersonTypeID", DbType.Object, "1"));

но ничего из этого не работает. Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

1 голос
/ 23 марта 2009

Я думаю, что ответ, который вы ищете, включает использование метода Include, например:

entities.it.Include("PersonType").Where(a => a.PersonType.PersonTypeID = '1');
0 голосов
/ 12 марта 2009

Вы пытались применить фильтр в памяти, используя LINQ? (или, возможно, против базы данных?)

var personType = new PersonType { Id = 1 };
var query = PersonDataSource.Where(p => p.PersonType.Equals(personType));
// use this query as the DataSource for your GridView

Я должен признать, что ничего подобного не делал, но я использовал этот трюк для обновления / создания объекта без предварительной загрузки связанных объектов.

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