C# 比较连接的SQL和LINQ
我有一个SQL查询,如下所示:(此查询按预期工作) 我有一些LINQ的基本知识。但我真的很难加入 我已尝试将上述查询转换为LINQ。以下是LINQ查询:C# 比较连接的SQL和LINQ,c#,sql,sql-server,linq,join,C#,Sql,Sql Server,Linq,Join,我有一个SQL查询,如下所示:(此查询按预期工作) 我有一些LINQ的基本知识。但我真的很难加入 我已尝试将上述查询转换为LINQ。以下是LINQ查询: var members = from member in db.Members join relation in db.RelationShips on member.MemberID equals relation.RequestSenderID join s
var members = from member in db.Members
join relation in db.RelationShips
on member.MemberID equals relation.RequestSenderID
join status in db.StatusMasters
on relation.StatusID equals status.StatusID
where
status.Status == "Allowed" && relation.RequestReceiverID == 3
select member.Name;
但我在尝试将成员转换为JSON对象时出错。
错误为:执行命令定义时出错。有关详细信息,请参见内部异常EntityCommandExecutionException
因此,我复制了VisualStudio生成的SQL并将其粘贴到SQLServerManagementStudio中。在那里,我注意到StatusMasters
(表名)正在产生问题。原始表的名称是StatusMaster
,实体框架使其多元化
我不想让它多元化,那么我怎样才能阻止实体框架多元化呢
注意:模型不是自动生成的。您可以发布EntityCommandExecutionException中的内部异常吗?{“无效对象名称'dbo.StatusMasters'。}您提到的实体不是自动生成的。您是否手动定义它们?您当时可以将名称更改为
StatusMaster
吗?类文件的名称是StatusMaster.cs
我还应该更改什么?您的意思是使用relation.RequestReceiverID
还是relation.RequestSenderID
?您的两个代码示例在该属性上存在分歧。
var members = from member in db.Members
join relation in db.RelationShips
on member.MemberID equals relation.RequestSenderID
join status in db.StatusMasters
on relation.StatusID equals status.StatusID
where
status.Status == "Allowed" && relation.RequestReceiverID == 3
select member.Name;