2008-10-17 2 views
4

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

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

или

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

или даже

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

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

ответ

1

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

entities.it.Include("PersonType").Where(a => a.PersonType.PersonTypeID = '1'); 
+1

Это выглядит многообещающим. Мне нужно будет установить еще одно испытание для этого, так как в расстройстве мы вытащили EF и включили L2S. Заменили 6 недель или около того EF вытягивание волос за один день с помощью L2S – jlembke 2009-03-24 23:13:33

0

Вы пробовали использовать фильтр в памяти с помощью 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 

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

Смежные вопросы