4

我正在使用Entity Framework 4.1 code first。我有一個產品表,它有一個Id列,它是一個自動遞增的列。當我添加產品實例時,如何獲得此新ID或更新產品(與屬性一起返回)?如何首先在實體框架代碼中獲取自動遞增的值

我的倉庫代碼:

MyContext db = new MyContext(); 

public void Insert(Product product) 
{ 
    db.Products.Add(product); 
    db.SaveChanges(); 
} 

回答

7

product.Id財產執行插入後看(或任何你的ID屬性被調用)。它將由EF用數據庫分配的值更新。

+0

如果我必須在一個事務中做這些事情,那麼在我可以保存更改之前會做出更多更改?因此,一個交易將是,首先添加產品,然後使用productId(自動增量)保存訂單詳細信息。只有兩者都完成後,我們才能保存更改。那可能嗎? –

+1

您可以讓EF負責設置外鍵:'db.Products.Add(product); orderDetail.Add(產品); db.OrderDetails.Add(的OrderDetail); db.SaveChanges();' –