我正在使用EF尝试使用ASP.NET更新实体。我创建一个实体,设置其属性,然后将其带有ID的实体传递回到另一层中的EF,以便可以应用更改。我之所以这样做,是因为当将实体绑定到UI控件时,我只存储实体的ID。
所有标准属性都可以正常工作,但我无法更新Product的Category.ID(相关实体)。我尝试了EntityKey、EntityReference和其他一些方法,但类别ID未保存。这是我的代码:
所有标准属性都可以正常工作,但我无法更新Product的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一起使用时似乎遇到了一些问题。