是否有任何方法從強類型對象更新對象而不列出每個字段?
讓我們考慮以下情況:來自同一類型的另一個對象的更新實體框架對象
using (var context = new MyDBEntities())
{
var user = (User)Session["EditedUser"];
var oldUser = context.Users.FirstOrDefault(o => o.Id == user.Id);
oldUser.FirstName= user.FirstName;
oldUser.LastName = user.LastName;
etc ....
context.SaveChanges();
}
我有29多個領域,我不願意一個由每次一個把它們寫下來。 我所尋找的應該是類似這樣
using (var context = new MyDBEntities())
{
var user = (User)Session["EditedUser"];
var oldUser = context.Users.FirstOrDefault(o => o.Id == user.Id);
oldUser=user;
context.SaveChanges();
}
肯定這將失敗,因爲實體的主鍵衝突的。我想在這裏實現的是更新除主鍵值以外的所有字段。
你試圖附加了嗎?例如'db.Users.Attach(用戶); db.Entry(user).State = EntityState.Modified;' – Silvermind
用戶已經在數據庫中,我正嘗試從另一個用戶對象更新他的屬性。 Attach不會引用舊用戶,它將作爲新用戶附加。 –
'AddObject'將是一個新用戶,如果您將'[Key]'列設置爲現有用戶的相同值,則不是'Attach'。 – Silvermind