[英]Include(“myTable”) in Linq to Entities in Silverlight
我需要幫助,我有一種訪問我的訂單表的方法:
public IQueryable<Orders> GetOrders()
{
return this.ObjectContext.Orders.Include("UnitDetail");
}
它工作得很好,我可以從“數據源”窗口中看到它,並且可以從此處看到Orders和UnitDetail
但是我需要對選定的行進行一些考慮,所以我做了下一個方法:
public IQueryable<Orders> GetOpenOrders(string _iduni)
{
ObjectSet<Orders> orders = this.ObjectContext.Orders;
ObjectSet<Estatus> estatus = this.ObjectContext.Estatus;
ObjectSet<DetailUnit> units = this.ObjectContext.DetailsUnit;
ObjectSet<ServiceType> servicetype = this.ObjectContext.ServiceType;
var query =
(from o in orders
join e in estatus on o.ID equals e.IDOrder
join u in units on o.IDUni equals u.IDUni
join t in servicetype on u.IDType equals t.IDType
where o.IDUni.Equals(_iduni)
&& !estatus.Any(oe => (oe.Estatus == "CANCELADA" || oe.Estatus == "CERRADA")
&& oe.IDOrder == o.ID)
select o).Distinct();
return query.AsQueryable();
}
這告訴我正確的記錄,但是發生了什么? 為什么我看不到UnitDetail,當我檢查結果UnitDetail為null時,如何將Include clausule放入此新方法中?
提前謝謝
因為您還沒有將Include
放在新方法的任何地方。
編輯:刪除未使用的聯接。
您應該能夠像在GetOrders
方法中一樣使用Include
,並將其作為現有orders
變量的一部分。 您實際上不是打算在任何地方使用這些joins
嗎?
像這樣:
public IQueryable<Orders> GetOpenOrders(string _iduni)
{
var query =
(from o in this.ObjectContext.Orders.Include("UnitDetail")
where o.IDUni.Equals(_iduni)
&& !this.ObjectContext.Estatus.Any(oe => (oe.Estatus == "CANCELADA" || oe.Estatus == "CERRADA")
&& oe.IDOrder == o.ID)
select o).Distinct();
return query.AsQueryable();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.