当您编写涉及两个表/实体的linq查询时,您已经在实体框架数据模型中定义了关系,是否必须在查询中定义连接,或者是否使用不同的语法已定义的关系?
var q =
from c in categories
join p in products on c equals p.Category into ps
select new { Category = c, Products = ps };
否则,在EF模型中定义关系的重点是什么?
答案 0 :(得分:2)
您的类别实体中应该有一个名为Products
的导航属性,其中包含所有相关的产品实体,您应该使用此属性而不是手动加入。
答案 1 :(得分:2)
如果设置正确,你将拥有一个代表外键关系的引用属性,在这种情况下你应该可以执行以下操作:
var q = from c in categories
select new {Category = c, Products = c.Products};
答案 2 :(得分:2)
我发现这篇博文join in LINQ to SQL and LINQ to Entities Considered Messy, Redundant非常清楚地解释了这个概念。