我有1對多的關係,兩個表左連接:WorkOrder
1 - * Service
如何執行時,加盟字段爲空或0
他們通過現場的關係:ServiceID
由於一些遺留原因,也有一些WorkOrder
沒有任何Service
,但其ServiceID
場被保存爲0
現在我想選擇所有WorkOrders
IFF
存在匹配的Service
OR WorkOrder
的ServiceID
= 0
沒有ServiceID = 0
要求它應該是一個正常的左連接:
var result = from wo in WorkOrderQuery
join j in JobQuery on ... // join some other tables
join s in ServiceQuery on wo.ServiceID equals s.ServiceID into gg
from g in gg.DefaultIfEmpty()
select new
{
ServiceCode = g == null? "" : g.Code,
WorkOrderID = wo.WorkOrderID,
};
但我不知道當這個要求被添加時。任何建議表示讚賞。
難道你不能簡單地更新錯誤的記錄?例如:'update workorder set serviceid = null where serviceid = 0;' – Rumpelstinsk
不,如果可以的話,我會這樣做,但這是一個公司決定,他們應該保持不變 – shole
@shole - 如果您有一個外鍵的值不' t真的映射到另一個表中的實際記錄 - >它不是一個外鍵... –