我很难理解这个问题:

这是我需要使用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”与现有数据列匹配。

10-06 09:06