1

我很难理解这个问题:

这是我需要使用 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 是个问题。谢谢你。

4

2 回答 2

4

那里给出了您问题的答案:问题:我可以在非实体成员字段上创建一个 linq 到实体查询吗

使用这些 LinQ 进行实体查询时,您只能使用“实体成员”,即在数据表中定义的属性。

由于您的查询被包装(“翻译”)为 SQL 命令,因此您必须使用在数据模型中定义的属性。

在您的示例中,我强烈建议您确保“BusinessID”与现有数据列匹配。

于 2012-11-21T15:06:22.180 回答
0

可能BusinessID未标记为实体成员。

于 2012-04-11T19:33:14.047 回答