Linq检查表中的布尔结果并返回true或false(3个表连接)

时间:2015-03-28 06:21:45

标签: linq

我有3张桌子A,b,C

表A与表B具有1-M关系,与表C具有1-1关系。

“表A”有三个布尔属性a1Completed,a2Completed,a3Completed。

“表B”还有三个布尔属性b1Completed,b2Completed,b3Completed。

“表C”有2个布尔属性c1.Completed和C2Completed。

我想编写LINQ查询,在检查这3个表中的所有布尔属性后返回true或false。 如果所有布尔属性(在所有表中)都为true,则返回true,否则返回false。表A和表A C将始终有一条记录,但表B可能有超过1条记录。

我写了如下查询。

var isTrue =    (From  a in db.A
    .join b in db.B on a.id equals b.jId
    .join c in db.C on a.id equals c.jId
    where (a.Id == '12345')
    select a.a1Completed 
    && a.a2Completed
    && a.a3Completed
    && b.b1Completed
    && b.b2Completed
    && b.b3Completed
    && c.C1Completed
    && c.C2Completed
    && c.C3Completed).Any();

当表B只有一条记录时(表A和C各有一条记录),此查询正常工作。 当Tablw B有多个记录时,它不起作用。

请提示吗?

0 个答案:

没有答案