簡體   English   中英

Linq中的Include(“ myTable”)到Silverlight中的實體

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM