[英]Update foreign key using Entity Framework
我再一次遇到了實體框架問題。
我正在嘗試使用外鍵更新表,
我在插入時遇到問題,但是通過編輯edmx文件進行了排序。
我正在使用以下代碼更新與角色表有外部關系的用戶表,
Domain.Data.Role role = db.Role.FirstOrDefault(r => r.RoleName == user.Role);
Domain.Data.User data = db.User.Where(u => u.UserName == username).First();
data.Pass = user.Password.Encrypt();
data.CreatedBy = Login.User.Encrypt();
data.DtCreated = DateTime.Now;
//data.Role = role;
data.Role = (from r in db.Role
where r.RoleName == user.Role
select r).First();
db.SaveChanges();
更新時,我收到以下異常,
發生引用完整性約束沖突:當對象具有非臨時鍵時,不能更改作為引用完整性約束一部分的屬性。
任何反饋將非常有幫助。
問候,
薩伯
我不確定,但是在設計器中創建/更新模型時,您可能需要檢查是否勾選了“在模型中包括外鍵列”。 如果勾選了該復選框,則可能會發現僅設置該對象是不夠的,您可能還需要設置ID或僅設置ID。
例如。 您可能需要做:
data.RoleId = role.RoleId;
結合設置對象或代替設置對象。
就我個人而言,我不會勾選“在模型中包括外鍵列”,因為它使我頭疼不已,而我卻不記得一年或一年多以前的情況。 有時會很痛苦,因為能夠使用IDs進行過濾/搜索/更新是一件很不錯的事,但是我學會了沒有這種生活,以免遇到您遇到的煩惱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.