![](/img/trans.png)
[英]The UPDATE statement conflicted with the FOREIGN KEY constraint in asp.net mvc 5
[英]ASP.NET MVC remove foreign key constraint via fluent API
我有一個模特
public class MenuItem
{
public int Id { get; set; }
....
public string CreatedBy { get; set; }
public string ModifiedBy { get; set; }
public ApplicationUser UserCreated { get; set; }
public ApplicationUser UserModified { get; set; }
}
目前我已經配置了UserCreated
與User
表的外鍵關系。 這是我不想要的東西。
我的DbMigration腳本不應在這兩者之間創建外鍵關系,因為我應該能夠刪除用戶,而無需真正刪除菜單中的所有記錄。
可以避免嗎?如果可以,怎么辦?
為了使用UserCreated
和UserModified
導航屬性,EF遷移需要該前鍵才能知道如何檢索該數據。
如果您是我,我將刪除這兩個導航屬性,並創建一個Extension方法,您可以使用該方法來獲取UserCreated
和UserModified
。 您的代碼將類似於以下內容。
public static class MenuItemExtensions {
public static ApplicationUser GetUserCreated(this MenuItem menuItem, DbContext db) {
db.ApplicationUsers.SingleOrDefault(u => u.Username == menuItem.CreatedBy);
}
public static ApplicationUser GetUserModified(this MenuItem menuItem, DbContext db) {
db.ApplicationUsers.SingleOrDefault(u => u.Username == menuItem.ModifiedBy );
}
}
我假設Username
名是CreatedBy
和ModifiedBy
對應的名稱。
還有 ,記得在DB指數增加對這些列,以便這個連接是不是超級慢!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.