编写LINQ查询时遇到一些困难

时间:2015-11-02 13:01:48

标签: c# linq

我有以下代码:

IsServiceable = _context.Review.Any(r => r.SiteId == x.Id) ? _context.Review.All(r => r.SiteId == x.Id && r.IsValid == true) : true

但是你可以看到它没有效果,因为我试图在同一行中访问数据库两次。

我需要编写单个查询(LINQ TO ENTITY)来检查名为Reviews的表 至少有一排 其中siteId=5如果不是,则必须返回 true , 如果table Reviews至少有一行,我需要检查一个名为isValid的布尔列if,至少有一行siteId=5isValid列是false我需要返回false

2 个答案:

答案 0 :(得分:2)

我相信您的解决方案在于,只有在一种情况下您需要返回 false - 其他所有内容都返回 true 。因此,如果您找到sideId = 5且isValid = false的一行,则返回false。否则,返回true。根据您的代码,我建议如下:

IsServiceable = _context.InspectionReview.Any(r => r.SiteId == x.Id && r.isValid == false) ? false : true;

答案 1 :(得分:0)

您很可能拥有导航属性,因此您可以尝试

from toto.spiders import runSpider