25

它是工作代码;

IQueryable<Product> productQuery = ctx.Set<Product>().Where(p => p.Id == id).(Include"Contexts.AdditionalProperties.Field");

但是你知道,如果我们在“Contexts.AdditionalProperties.Field”中的字符串语句出错,它不会产生编译时错误

我想在下面写代码;

IQueryable<Product> productQuery = ctx.Set<Product>().Where(p => p.Id == id).Include(p => p.Contexts);

但是上面的语句不能给定义 AdditionalProperties 和 Field 的机会。

我们应该做什么?

我想为构建查询编写多个包含。

谢谢。

4

1 回答 1

43

如果AdditionalProperties是对另一个对象的单个引用:

using System.Data.Entity;
...
IQueryable<Product> productQuery = ctx.Set<Product>()
        .Include(p => p.Contexts.AdditionalProperties.Field)
        .Where(p => p.Id == id);


如果AdditionalProperties是一个集合,那么您可以使用Select方法:

IQueryable<Product> productQuery = ctx.Set<Product>()
        .Include(p => p.Contexts.AdditionalProperties.Select(a => a.Field))
        .Where(p => p.Id == id);

不要忘记在你的类文件中导入System.Data.Entity命名空间!

于 2011-01-20T19:06:26.953 回答