怎么写这个linq,求大神指导

这个月太忙没时间看C++ 2017-03-30 11:16:40
1、有A和B两张表,A表的主键是个guid类型的aid,这个主键对应的外键在B表中为aaid,B表中还有一个字段是状态status,我要查出a中数据,条件是:当B表中存在A表的外键aaid的数据时状态status为0的数据,或者B表中没有A表中外键的数据
...全文
217 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
from b in B join a in A on b.aaid equals a.aid into temp from t in temp.DefaultIfEmpty() where t == null || b.Status == 0 select b
丰云 2017-04-01
  • 打赏
  • 举报
回复
晕,又复制了忘记改了。。。 第二个a_tbs改成b_tbs
丰云 2017-04-01
  • 打赏
  • 举报
回复

db.a_tbs.Where(p => p.b_tbs.Count() == 0 || p.a_tbs.Count(q => q.Status > 0) == 0).ToList();
  • 打赏
  • 举报
回复
from c in A where (!(from mm in db.B select mm.aaid).Contains(c.ID)) || ((from mm in B where mm.Status == 0 select mm.aaid).Contains(c.ID) && !(from mm in B where mm.Status == 1 select mm.aaid).Contains(c.ID)) 这样好像是对的
  • 打赏
  • 举报
回复
引用 2 楼 foren_whb 的回复:
你的描述从逻辑上来讲,很不严谨。 首先,如果b表中多有多条aaid的数据怎么办? 进而,这些数据的status值有0有不为0的,怎么办? 你不把这些说清楚,这个题目没有答案!!!!
就像你说的,AB就是一对多,B中可能有多条于A对应的,只要B中的status有一条状态是不为0的,所对应的外键相关数据就不取出来了,该怎么写啊
丰云 2017-03-31
  • 打赏
  • 举报
回复
你的描述从逻辑上来讲,很不严谨。 首先,如果b表中多有多条aaid的数据怎么办? 进而,这些数据的status值有0有不为0的,怎么办? 你不把这些说清楚,这个题目没有答案!!!!
xdashewan 2017-03-30
  • 打赏
  • 举报
回复
Linq中使用Left Join,参考http://www.cnblogs.com/xinjian/archive/2010/11/17/1879959.html

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧