需要Linq查询

时间:2016-02-15 21:00:27

标签: c# linq exists

我正在尝试编写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()
                    };

1 个答案:

答案 0 :(得分:0)

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

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

我不知道你的c#代码下面有什么问题,而且你的sql语句中没有对它或相应的Sql的解释,所以我将忽略它。