[英]entity framework select records do not exists in join table or field is null
我正在使用Entity Framework
構建c# lambda
我有兩個具有內部MarketOrder
關系的表...( Order
和MarketOrder
)。 OrderID
是Order Table
上的PK和市場Order Table
的FK MarketOrder Table.
恢復我的模型是這樣的
public class Order { [Key] public int OrderID { get; set; } public virtual MarketOrder MarketOrders { get; set; } } public class MarketOrder { [Key] public int MarketOrderID { get; set; } // One sequence for all system market orders. public int OrderID { get; set; } public virtual Order Order { get; set; } }
我需要選擇MarketOrder.Status is null
表中不存在的記錄,或者存在具有字段MarketOrder.Status is null
我嘗這個
db.Order
.Where(c => !db.MarketOrder
.Select(b => b.OrderID)
.Contains(c.OrderID)
);
當其他表中不存在該文件時,我可以正常工作,但如果Status == null時存在該表,我將無法使用它。
關系是一對多的。 在訂單類中,我有財產
public virtual List<MarketOrder> MarketOrders { get; set; }
var aa =(from order in db.OrderFunds
from marketOrder in order.MarketOrders.DefaultIfEmpty()
where marketOrder.OrderID == null || marketOrder.Status == null).ToList();
它工作正常。
當關系是One To One
時,我有問題。 在訂單類中,我具有屬性
public virtual MarketOrder MarketOrders { get; set; }
線
order.MarketOrders.DefaultIfEmpty()
不起作用。 order.MarketOrders
沒有方法DefaultIfEmpty()
。 如果我使用order.MarketOrders.ToString().DefaultIfEmpty()
子句where marketOrder.OrderID
不具有屬性OrderID
我該如何解決。
謝謝。
db.Order.Where(o => o.MarketOrder?.Status == null)
如同
db.Order.Where(o => o.MarketOrder == null || o.MarketOrder.Status == null)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.