最近我正在开发一个C#项目,我试图在LINQ C#中做一个困难的SQL语句。但我不知道该怎么做。
以下是声明:
SELECT *
FROM members
INNER JOIN group_has_members ON members.ID = group_has_members.members_ID
WHERE group_has_members.group_ID != 1
AND group_has_members.members_ID NOT IN(SELECT group_has_members.members_ID
FROM group_has_members
WHERE group_has_members.group_ID = 1)
如果你帮助我会很好:D 你的弗洛里安
答案 0 :(得分:1)
我认为你需要这样的东西,我没有测试这个查询,但它将是这些方面的东西。有关一些想法,请参阅How would you do a "not in" query with LINQ?。
var mem = from m in members
join gm in group_has_members on m.ID equals gm.members_ID
where gm.members_ID != 1 &&
!(from ghm in group_has_members
where ghm.group_ID = 1
select ghm.members_ID).Contains(gm.members_ID)
select m;
对于这个,一个很好的工具是LinqPad,如果你刚刚开始。您可以将SQL粘贴到窗口中并查看linq等效项。
答案 1 :(得分:1)
检查此转换器, 我希望它对你有所帮助
答案 2 :(得分:0)
如果您当前有一个查询,并且您将在基于linq to SQL的项目中重用它,则无需再次使用同一查询来获取linq语义。 您可以使用“执行”命令直接使用查询。
https://msdn.microsoft.com/it-it/library/system.data.linq.datacontext.executecommand(v=vs.110).aspx