Вопрос

Мне очень нравится Entity Framework, но есть некоторые ключевые моменты, которые вызывают у меня трудности.Может ли кто-нибудь сказать мне, как фильтровать EntityDataSource в столбце Association?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"));

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

Это было полезно?

Решение

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

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top