C# 比较连接的SQL和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

我有一个SQL查询,如下所示:(此查询按预期工作)

我有一些LINQ的基本知识。但我真的很难加入

我已尝试将上述查询转换为LINQ。以下是LINQ查询:

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;