2011-01-20 38 views
25

它是工作代码;CodeFirst中的多级包含 - EntityFrameWork

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

但是你知道,它不能产生编译时错误,如果我们在“Contexts.AdditionalProperties.Field” MADE IN字符串声明错误

我想下面编写代码;

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

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

我们该怎么办?

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

谢谢。

回答

43

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

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


如果AdditionalProperties是一家集,那么你可以使用选择方法:

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

唐忘记导入System.Data.Enti在您的类文件中使用命名空间

+1

你打败了我;) – 2011-01-20 19:08:33

相关问题