[英]Entity Model - How to insert / update data which involves navigational properties
[英]Entity Framework 1 - How to insert a record that involves Navigational Entities
我正在使用SQL Server,Framework 3.5,C#,我的產品表就像id,name,created_by,group_id
created_by是外鍵表單的用戶
group_id是外鍵表單組
PRODUCT product = new PRODUCT();
product.name = txtName.Text.Trim();
product.USER = new USER { user_id = Session["UserID"] };
product.GROUP = new GROUP { group_id = 1 };
_db.AttachTo("USERs", product.USER);
_db.AttachTo("GROUPs", product.GROUP);
_db.AddToLEAD_TYPE(product);
_db.SaveChanges();
但是我在savechanges上出錯
// ObjectStateManager中已經存在具有相同鍵的對象。 現有對象處於“未更改”狀態。 如果對象處於添加狀態,則只能將其再次添加到ObjectStateManager。
如何解決這個問題?
這是我解決我的問題的方法
PRODUCT product = new PRODUCT();
product.name = txtName.Text.Trim();
product.USERReference = CreateEntityReference<USER>("MyEntities.USERs", "user_id", Session["UserID"] );
product.GROUPReference = CreateEntityReference<GROUP>("MyEntities.GROUPs", "group_id", 1 );
_db.AddToPRODUCTS(product);
_db.SaveChanges();
這是我的CreateEntityReference函數
private EntityReference<T> CreateEntityReference<T>
(string qualifiedEntitySetName, string keyName, object keyValue) where T : EntityObject
{
EntityReference<T> result = new EntityReference<T>();
result.EntityKey = new System.Data.EntityKey(qualifiedEntitySetName, keyName, keyValue);
return result;
}
希望這可以節省你們許多人的時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.