LINQ 到实体(指定的类型成员 '' 在 LINQ to 实体中不受支持)

本文关键字:LINQ 实体 to 支持 类型 成员 | 更新日期: 2023-09-27 18:30:42

我很难理解这个问题:

下面是我需要使用 LINQ to 实体实现的 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();

此表达式编译良好,但在运行时存在异常:指定的类型成员"BusinessID"在 LINQ to Entities 中不受支持。仅支持初始值设定项、实体成员和实体导航属性。

我想知道为什么商业ID是一个问题。谢谢。

LINQ 到实体(指定的类型成员 '' 在 LINQ to 实体中不受支持)

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

使用这些 LinQ 到实体查询时,只能使用"实体成员",即数据表中定义的属性。

由于查询已包装("转换")为 SQL 命令,因此必须使用数据模型中定义的属性。

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

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