2012-11-08 17 views
1

Entity diagram在無法包含foriegn密鑰表的wcf ria服務中的調用操作

嗨。 我米使用調用操作它會返回一個類「產品」

public Product GetProductById(int Id) 
     { 
      Product Record = this.ObjectContext.Product.Include("Order_Detail").Where(d=>d.ProductID=Id).FirstOrDefault() 
      return Record; 
     } 

但在類的已完成事件即時通訊無法得到Order_Detail

InvokeOperation<Product> Invk = ObjProduct.GetProductById(); 
       Invk.Completed += (sender, e) => 
       { 
        if (!Invk.HasError) 
        { 
         Product ObjProduct = Invk.Value; 
         Order objorder=ObjProduct.Order_Detail; 
        } 
       }; 

即時得到ObjProduct.Order_Detail爲Null我不知道爲什麼我不是能夠包括Order_Detail在

我寫了這個產品實體的元數據[包括]以及

[Include] 
public Order Order { get; set; }   

但我仍然無法獲得Order_Detail在集合中。 等待積極迴應。

+0

我有點困惑:你想從你的產品中獲得訂單嗎?基於你的模式,我可以看到Order - >> Order_Detail - > Order。你能解釋一下嗎? – mCasamento

+0

對不起,我想從產品Order_Detail –

回答

2

這是預期的行爲。調用意味着在服務器上執行操作或檢索簡單對象。
如您所見,InvokeOperation回調不包含爲包含實體騰出空間的通常Entities/AllEntities屬性。
我建議你使用帶參數的標準加載操作來獲取數據。

public IQueryable<Product> GetProductById(int Id) 
    { 
     return this.ObjectContext.Product.Include("Order_Detail").Where(d=>d.ProductID=Id); 
    } 

如果你想達到什麼是「非累積執行」(即不與查詢的結果加載domainContext的EntityContainer相關)在此post從馬修查爾斯

比看看