我有一个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