我非常喜欢实体框架,但有一些关键部分对我来说是一个挑战。谁能告诉我如何在Association列上过滤EntityDataSource? EF隐藏FK值,而是具有Association属性。给定一个具有PersonType关联的Entity,Person,如果我想按类型过滤我的Person Entity,我会期望这样的东西能够工作:

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