我很难理解这个问题:
这是我需要使用LINQ to Entities实现的T-SQL查询
select r.ReviewID, b.BusinessID, b.Name as BusinessName ,r.Description
from gb_business.Review r
inner join gb_business.Business b on r.BusinessID = b.BusinessID
inner join gb_listing.RegionalService rs on b.BusinessID = rs.BusinessID
where r.ReviewStatusID=1 and rs.TypeID=1 and rs.IsMain=1
在VS2010中,它看起来像这样(没有where子句)
var res1 = (from r in context.Review
join b in context.Business on r.BusinessID equals b.BusinessID
join rs in context.RegionalService on b.BusinessID equals rs.Business.BusinessID
select r).ToList();
该表达式可以很好地编译,但是在运行时会有一个例外:LINQ to Entities不支持指定的类型成员'BusinessID'。仅支持初始化程序,实体成员和实体导航属性。
我想知道为什么BusinessID是一个问题。谢谢。
最佳答案
您的问题的答案在此处给出:Question : Can I create a linq to entity query on non entity member fields
当使用这些LinQ进行实体查询时,只能使用“实体成员”,它们是在数据表中定义的属性。
由于查询被包装(“翻译”)到SQL命令中,因此您必须使用在数据模型中定义的属性。
在您的示例中,我强烈建议您确保“ BusinessID”与现有数据列匹配。