2016-07-30 107 views
1

我有一个Campaign类型的实体,我希望找到所有具有该实体的广告系列的订单。我难以理解如何做什么应该可能是一个非常简单的查询。 这在逻辑上是查询应该是什么,但它是无效的。使用LINQ实体获取基于相关实体的记录

var myCampaign = db.Campaigns.Find(15); //15 being the Id of the campaign I want to use for comparison 
var orders= db.Orders.Where(a=>a.Campaigns.Equals(myCampaign)).ToList(); 
+0

你应该能够在'Campaign'类中添加导航属性。随着获得你所需要的会很容易,像'var orders = myCompaign.Orders;'。 – MarcinJuraszek

+0

很抱歉忘记提及已有导航属性 –

+1

为什么不使用它? – MarcinJuraszek

回答

-1

您可以试着Any操作如下图所示(假设活动字段/属性名称“CAMPAIGNID”):

var campaignId = 15; 
db.Orders.Where(o => o.Campaigns.Any(c => c.CampaignId == campaignId)).ToList();