我有一個帶有EntityFramework的Silverlight 4應用程序作爲數據層。Silverlight + RIA:問題編輯實體
有兩個實體:客戶和產品。當我從數據庫中獲取客戶,相關產品也看過,因爲我加了相關的「包含」在客戶的元數據屬性和調用包含在GET查詢方法:
public IQueryable<customer> GetCustomerSetById(int customerId)
{
return this.ObjectContext.CustomerSet
.Include(o => o.Products)
.Where(o => o.Id = customerId);
}
的問題,當我改變任何財產客戶的產品,我得到這個異常:
這EntitySet的類型 「MyApp.Web.Models.Product」的不 支持「編輯」操作。
但是,如果我直接閱讀客戶產品,例如,不是通過客戶實體(CustomerContext),而是通過產品一(ProductContext)。
另外還有產品實體中的IsReadOnly = true屬性。
UPDATE:
我都CUD操作和也標誌着他們都與相關插入,更新和刪除屬性。否則它根本無法工作,但在我上面寫的一些情況下,它對我有用。
任何想法?
啊 - 錯過了它在某些情況下工作的那一點。 – ChrisF 2011-06-03 16:30:30
這是RIA + EF的真正問題,因此我們將所有實體保留在一個域服務中,因爲在客戶端,很難處理通過導航屬性相關的多個實體。想一想,它實際上沒有什麼區別,我們使用EF T4模板來生成一個類中的所有域服務操作。我們生成了部分方法來攔截域服務方法的邏輯。 – 2011-06-04 06:43:46
@Akash Kava:看起來你對RIA和多個域名服務文件是正確的。如果我爲所有實體創建一個單獨的域服務 - 它可以工作。所以請將您的評論作爲答案 - 我會接受它。謝謝。 – Kamarey 2011-06-04 12:38:35