【问题标题】:Linq query with exist needed [duplicate]需要存在的Linq查询[重复]
【发布时间】:2016-05-26 22:20:01
【问题描述】:

我正在尝试编写一个 LINQ 查询来获取一些数据。我试图转换为 LINQ 的 SQL 查询是:

SET HApps = (SELECT COUNT(1) 
FROM [App] r                                
WHERE EXISTS (SELECT 1
      FROM AppStatus laa
              WHERE laa.AppID = r.AppID
      AND laa.AppCode = 3))

有没有办法在 LINQ 中编写 Exist 子句?

编辑: 我的情况与这个答案略有不同,因为我必须得到计数。我正在尝试做这样的事情,但它不起作用

from r in
(from r in context.App
  where
    (from laa in context.AppStatus
     where
       laa.AppId == r.AppId && laa.AppId == 3
                                select new
                                {
                                    Column1 = 1
                                }).FirstOrDefault().Column1 != null
                        select new
                        {
                            Column1 = 1,
                            Dummy = "x"
                        })
                    group r by new {r.Dummy}
                    into g
                    select new
                    {
                        Column1 = g.Count()
                    };

【问题讨论】:

  • LINQ to SQL 还是 LINQ to Entities?这有点不同。
  • 这是实体的 LINQ,但我的情况略有不同。我已经编辑了问题来解释。

标签: c# linq exists


【解决方案1】:

根据您的 Sql 和 DbSet 的命名,您可以执行此操作(它是一个 Lamda)。

context.App.Count(x => context.AppStatus.Any(y => y.AppId == x.AppId && y.AppId ==3));

我不知道你的 c# 代码下面是什么乱七八糟的东西,也没有解释它或你的 sql 语句中对应的 Sql,所以我将忽略它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    • 2017-11-23
    • 1970-01-01
    相关资源
    最近更新 更多