使用C#在LINQ中使用外键导航属性查询表

时间:2011-07-20 15:02:10

标签: c# linq-to-sql lambda foreign-key-relationship

我有以下 LINQ to SQL EF 类:

LINQtoSQL EF class diagram

SessionId (主表 WebinarSession )上的外键关系。

我希望使用lambdas 来选择与特定产品系列相关的所有 WebinarSession 行。

我举例说明这个代码当然不工作(它强烈要求 哪里,但它不适用因为我有符合条件的多个实例):

SessionId = _webinarRecordingsDB.WebinarSessions.Where(m => m.SessionId == m.SessionSubjects.Where(n => n.ProductLineName == productLine).SessionId);

_webinarRecordingsDB 是映射 SQL数据库的EF对象。

有人知道如何完成这项任务吗?感谢

1 个答案:

答案 0 :(得分:6)

这应该可以解决问题:

var sessions = _webinarRecordingsDB.WebinarSessions.Where(w => w.SessionSubjects.Any(s => s.ProductLine == productLine));

当您在EF(或Linq to SQL类)中定义外键时,设计器应自动创建一个属性,允许您从实体直接访问该表(在您的情况下,您的WebinarSession对象应具有名为SessionSubjects的属性) )。