【发布时间】:2010-07-08 17:34:01
【问题描述】:
我有以下命令:
var query = from x in context.FirstTable.Include("SecondTable")
where x.TestColumn == 5 &&
x.SecondTable.SecondTestColumn == 3
select x;
现在我还想从名为“ThirdTable”的第三个表中加载条目。 但我只能通过 SecondTable 表来引用它。 FirstTable 到 SecondTable 有一个外键,SecondTable 到 ThirdTable 有一个外键,但 FirstTable 到 ThirdTable 没有一个外键。
无法使用以下查询。例外是它无法从 FirstTable 导航到 ThirdTable:
var query = from x in context.FirstTable.Include("SecondTable").Include("ThirdTable")
where x.TestColumn == 5 &&
x.SecondTable.SecondTestColumn == 3
select x;
或者我是否需要为从该查询返回的每个结果集在 ThirdTable 上执行额外查询?
非常感谢您!
克雷格·斯图茨:
我有以下外键:table1 table2 table3
假设表格如下:订单 客户 customer_preferences
所以我不需要从订单到 customer_preferences 的外键。
大多数时候这是不必要的。就在这一次我想保护一些额外的数据库往返。
【问题讨论】:
-
你有非常好的理由在两端没有FK吗?
-
我有外键,但我认为从 Table1 到 Table3 的 FK 是不必要的。请看我更新的帖子。还是您认为我应该在订单表中添加 customer_preference_id?
-
好吧,听起来你有你需要的 FK。我会在下面回答。
标签: c# .net linq-to-sql entity-framework