Linq to Entities有两个表

时间:2011-06-09 20:21:00

标签: .net linq entity-framework

当您编写涉及两个表/实体的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模型中定义关系的重点是什么?

3 个答案:

答案 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非常清楚地解释了这个概念。