【发布时间】:2014-03-21 05:30:16
【问题描述】:
我已经阅读了很多关于如何在 LINQ 连接语句中使用实体框架导航属性的内容,但我仍然遇到问题。我可以让它在 Where 子句中工作,但不能作为连接。
如果我的交叉引用表存在于 EF 中并且不仅仅是一个导航属性,我的 LINQ 将如下所示:
var status = (from a in context.Beamtime_Request_Statuses
join b in context.Proposal_Types_Beamtime_Request_Statuses on a.Status equals b.Beamtime_Request_Status
where b.Proposal_Type_ID == proposalTypeID && a.Order > currentStatusOrder
orderby a.Order
select a.Status).FirstOrDefault();
所以问题是表 Proposal_Types_Beamtime_Request_Statuses 没有成为实体,只是一个导航属性,因为该表只包含 Proposal_Type_ID 和 Beamtime_Request_Status 列,它们都是其他表的主键和该表中的外键。
如果有人能告诉我如何使用适当的符号和 Proposal_Types_Beamtime_Request_Statuses 作为导航属性来编写该 LINQ 语句,那将不胜感激。
【问题讨论】:
-
所以
Beamtime_Request_Status有一个属性Proposal_Types? -
是的,Beamtime_Request_Statuses 的导航属性为 Proposal_Types,Proposal_Types 的导航属性为 Beamtime_Request_Statuses。
标签: asp.net-mvc linq entity-framework