我想在自定义表(网站)和与用户相关的默认aspnet表之间创建关系。
我正在使用代码优先,所以对于大多数FK关系我只会做
public ModelName ModelName { get; set; }
有了这个,EF将自动创建FK关系。很容易。
令人困惑的是挂钩到aspnet用户/成员资格表的最有效方法。我是否创建了一个新模型用作界面的用户,以便我可以实现自定义用户代码?
是否有最佳方法可以很好地融入EF最佳实践?我基本上只想将用户与网站表/模型联系起来,以便EF可以做到这一点。
答案 0 :(得分:3)
“我是否创建了一个新模型用作界面的用户,以便我可以实现自定义用户代码?”
如果你想要灵活性,我会说这是要走的路。这样,如果您希望将来更改为某种不同的身份验证数据库结构,将会更容易。
例如,有一个“AppUser”实体,其中相应的表具有aspnet_Membership表的“UserID”列的外键。这样,您只需向“AppUser”实体添加属性,而不是尝试更改MS表结构(这可能是一个真正的痛苦)。您仍然可以使用类似MvcMembership入门套件DLL的内容与MVC项目中的内置MS Membership类和函数进行交互。
https://github.com/TroyGoode/MembershipStarterKit
希望这有帮助!
答案 1 :(得分:2)
这有几个先决条件:
如果希望模型类与ASP.NET表有关系,则必须将ASP.NET表建模为另一个实体。我不确定你是否可以使用ASP.NET类,因为例如MembershipUser
没有EF所需的无参数公共构造函数。因此,您很可能需要创建重复的类及其映射,并在引用ASP.NET实体时使用这些类。