sql - Linq 中的多列检查
问题描述
请指导在 linq 中编写以下 sql 查询
SELECT DISTINCT
Item.Id AS ItemId, Item.CatId, [Case].Id AS CaseId
FROM [Item] WITH (NOLOCK)
LEFT OUTER JOIN [Case] WITH (NOLOCK) ON [Case].Id = Item.CaseId
LEFT OUTER JOIN [Cust] WITH (NOLOCK) ON [Case].CustId1 = Cust.Id OR
[Case].CustId2 = Cust.Id
我不明白如何在联接中包含 CustId1 和 CustId2。
下面是我没有 CustId2 的 linq:
var query = (from i in db.Item
join c in db.Case on i.CaseId equals c.Id
into joined
from c in joined.DefaultIfEmpty()
join cus in db.Cust on c.CustId1 equals cus.Id
into cust
from cus in cust.DefaultIfEmpty()
select new
{
Item=i,
Case = c,
Category = ct,
Pro = pr,
ZCatClass =zcc,
ZCatTyp = cct,
cust = cus
}).OrderByDescending(d => d.Item.Id).ToList();
解决方案
var query = (from i in Items
from c in Cases.Where(z => z.Id == i.CaseId).DefaultIfEmpty()
from cust in Custs.Where(z => z.Id == c.CustId1 || z.Id == c.CustId2).DefaultIfEmpty()
select new
{
...
}).OrderByDescending(z => z.Item.Id).ToList();
推荐阅读
- ios - 更新 Xcode 后 pod 文件出现错误,如何解决?
- c++ - 类中的c ++ int被设置为值,似乎无处不在
- python - Python3 - Windows:pip 在安装请求时出错
- python - 如何解决 Python 3.6 itertools 错误?
- pandas - 大熊猫中日期时间的字符串反转
- javascript - 确定用户在使用 v-calender 时所处的月份
- javascript - 为什么 querySelector 出现为 null 即使它正在寻找的类名在 HTML 中出现了 21 次?
- delphi - Delphi 10.3 中 HDPI 中的 TActionMainMenuBar 图标栏宽度错误
- listview - 不能在 ListView 中使用 MediaQuery
- python - 使用文本的 TensorFlow 输入管道