【问题标题】:SQL Statement into LinQ StatementSQL 语句转换为 LinQ 语句
【发布时间】:2016-03-29 05:22:30
【问题描述】:

最近我正在处理一个 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 你的弗洛里安

【问题讨论】:

  • 不,我只是 linq 中的那个语句。我不知道该怎么做:D
  • 你在使用实体框架吗?如果是这样,我会先假设数据库?

标签: c# mysql sql linq


【解决方案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 等效项。

【讨论】:

    【解决方案2】:

    检查这个转换器, 希望对你有帮助

    http://sqltolinq.com/

    【讨论】:

      【解决方案3】:

      如果您当前有一个查询,并且您将在基于 linq to SQL 的项目中重用它,那么您无需再次处理同一个查询即可获得 linq 语义。 您可以使用 Execute 命令直接使用您的查询。

      https://msdn.microsoft.com/it-it/library/system.data.linq.datacontext.executecommand(v=vs.110).aspx

      【讨论】:

        猜你喜欢
        • 2013-02-15
        • 1970-01-01
        • 2023-03-15
        • 1970-01-01
        • 1970-01-01
        • 2012-05-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多