我有一個Member
類:EF Code First 4.1:如何將Member.UserId映射到aspnet_Users.UserId?
public class Member
{
// key
public Guid UserId { get; set; }
// some other fields
}
另外我有一個aspnet_Users
表具有UserId
主柱。
我們可以:
1)。將其他屬性MembershipUser
添加到Member
對象,並通過調用Membership.GetUser(this.UserId)
方法獲取它的值。
而且我已經添加
context.Database.ExecuteSqlCommand("ALTER TABLE [dbo].[Members] WITH CHECK ADD CONSTRAINT [FK_Members_aspnet_Users] FOREIGN KEY([UserId]) REFERENCES [dbo].[aspnet_Users] ([UserId])");
到DataContext.Seed()
方法來確保Member
離不開aspnet_Users
帳戶添加。 2)。在OnModelCreating
中使用流暢的API。如果這是一個很好的情況下如何正確映射它們?
什麼是最佳選擇?有什麼想法嗎?
小心將這樣的引用約束添加到ASP.Net Membership表中。因爲現在當您將用戶添加到您的成員表時,您必須知道您要添加的ASPNet成員。你不想從使用EF的ASPNet成員表中插入/更新/刪除。這最終可能會造成一些困難。另外,理想情況下,這將是一對一的關係。但是,你會創造一個領域的關係,我認爲這不是你的主要關鍵。 – 2011-12-19 15:30:34
感謝您的提及。我認爲它應該是一對一的關係,UserId應該是關鍵。這種情況在這裏討論:http://stackoverflow.com/questions/4485350/entity-framework-1-to-1-relationship-where-one-end-is-not-a-primary-key – sashaeve 2011-12-19 15:39:59