簡體   English   中英

ASP.NET MVC通過流暢的API刪除外鍵約束

[英]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; }
}

目前我已經配置了UserCreatedUser表的外鍵關系。 這是我不想要的東西。

我的DbMigration腳本不應在這兩者之間創建外鍵關系,因為我應該能夠刪除用戶,而無需真正刪除菜單中的所有記錄。

可以避免嗎?如果可以,怎么辦?

為了使用UserCreatedUserModified導航屬性,EF遷移需要該前鍵才能知道如何檢索該數據。

如果您是我,我將刪除這兩個導航屬性,並創建一個Extension方法,您可以使用該方法來獲取UserCreatedUserModified 您的代碼將類似於以下內容。

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名是CreatedByModifiedBy對應的名稱。

還有 ,記得在DB指數增加對這些列,以便這個連接是不是超級慢!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM