我正在使用EF嘗試使用ASP.NET更新實體。我正在創建一個實體,設置它的屬性,然後將它傳遞迴帶有ID的單獨圖層上的EF,以便可以應用更改。我這樣做是因爲我只在被綁定到UI控件時存儲實體的ID。使用相關實體更新實體框架
一切適用於標準屬性,但我無法更新產品(相關實體)的Category.ID。我已經嘗試了EntityKey,EntityReference和其他一些,但是類別ID沒有保存。這是我的:
Product product = new Product();
product.CategoryReference.EntityKey = new EntityKey("ShopEntities.Categories", "CategoryID", categoryId);
product.Name = txtName.Text.Trim();
... other properties
StockControlDAL.EditProduct(productId, product);
public static void EditProduct(int productId, Product product) {
using(var context = new ShopEntities()) {
var key = new EntityKey("ShopEntities.Products", "ProductID", productId);
context.Attach(new Product() { ProductID = productId, EntityKey = key });
context.AcceptAllChanges();
product.EntityKey = key;
product.ProductID = productId;
context.ApplyPropertyChanges("ShopEntities.Products", product);
context.SaveChanges();
}
}
我真的想使用EF,但我似乎有一些使用它與ASP.NET的問題。
沒有被保存。 – Echilon 2009-10-23 12:17:44
對不起,Echilion,看看更新的答案。這次它肯定有效。 – 2009-10-23 15:06:06
最後!謝謝Misha,我即將拋棄EF,但你已經恢復了我的信心! – Echilon 2009-10-23 15:56:30