2011-05-29 93 views
3

我想創建自定義表(網站)和與用戶相關的默認aspnet表之間的關係。使用默認成員關係的MVC3實體框架

我使用代碼優先因此,對於大多數的FK關係,我只想做

public ModelName ModelName { get; set; } 

有了這個,EF會自動創建FK關係。好簡單。

令人困惑的是掛入aspnet users/membership表的最有效方法。我是否創建了一個新模型作爲接口的用戶,以便我可以實現自定義用戶代碼?

是否有一種最佳方法可以很好地適應EF最佳實踐?我基本上只想將用戶與網站表格/模型關聯起來,以便EF能夠完成它的工作。

回答

2

這有幾個前提條件:

  • ASP.NET表必須在同一個數據庫作爲自己的表
  • 上一頁前提意味着您必須手動創建數據庫和表(無自動代碼 - 第一代),或者你必須使用一些自定義的初始化如果你希望你的模型類與ASP.NET的表,你必須符合ASP.NET關係,將添加非映射ASP.NET表數據庫娛樂

的一部分表爲一個nother實體。我不確定您是否可以使用ASP.NET類,因爲例如MembershipUser沒有EF所需的無參數公共構造函數。所以你很可能需要創建重複的類及其映射,並在引用ASP.NET實體時使用這些類。

+0

根據您的經驗,asp mvc中的大多數應用程序是否使用此約定,或者是否有通常使用的另一個登錄系統? – krx 2011-05-30 13:21:20

3

「我是否創建了一個新模型作爲接口的用戶,以便我可以實現自定義用戶代碼?」

如果你想要靈活性,我會說這是要走的路。如果你想在將來改變某種不同的身份驗證數據庫結構,這樣會更容易。

例如,擁有一個「AppUser」實體,其中相應的表具有到aspnet_Membership表的「UserID」列的外鍵。這樣,您可以簡單地將屬性添加到您的「AppUser」實體,而不是嘗試更改MS表結構(這可能是一個真正的痛苦)。您仍然可以使用類似MvcMembership入門工具包DLL的內容,與MVC項目中的內置MS Membership類和函數進行交互。

https://github.com/TroyGoode/MembershipStarterKit

希望這有助於!