需要存在的 Linq 查询
Linq query with exist needed
我正在尝试编写 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()
};
根据您的 Sql 和 DbSet 的命名,您可以这样做(它是一个 Lamda)。
context.App.Count(x => context.AppStatus.Any(y => y.AppId == x.AppId && y.AppId ==3));
我不知道你的 C# 代码下面有什么乱七八糟的东西,也没有关于它的解释或你的 sql 语句中相应的 Sql 所以我要忽略它。
我正在尝试编写 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()
};
根据您的 Sql 和 DbSet 的命名,您可以这样做(它是一个 Lamda)。
context.App.Count(x => context.AppStatus.Any(y => y.AppId == x.AppId && y.AppId ==3));
我不知道你的 C# 代码下面有什么乱七八糟的东西,也没有关于它的解释或你的 sql 语句中相应的 Sql 所以我要忽略它。