嗨,有一个简单的查询,将所有已发送的请求与已下载的请求进行比较。
我有一个完全像这样的tsql:
select case when (select COUNT(*) from FileRecipient where File_ID = 3 and downloaded = 'Y')
= (select COUNT(*) from FileRecipient where File_ID = 3) then 'Y' else 'N' end
但是想在LINQ中做到这一点。
任何帮助都将不胜感激。我尝试了以下方法,但是显然我距离正确解决方案还有很长的路要走。这只是给我这两个数中的第一个。我是否需要做两个单独的语句才能得到第二个?
public static bool DownloadedByAll(int fsID)
{
using (SEntities ctx = CommonS.GetSContext())
{
var result = (from fr in ctx.FileRecipients
where fr.File_ID == fsID && fr.downloaded == "Y"
select fr.Recipient_ID).Count();
}
}
还是对我来说在实体框架内使用tsql会更简单?
这应该为您带来所需的结果
var result = ctx.FileRecipients
.Count(f=>f.File_ID == 3
&& f.downloaded == 'Y') == ctxt.FileRecipients
.Count(f=>f.File_ID == 3);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句