我正在开发一个使用Microsoft AspNetUsers
表存储登录的Entity Framework应用程序。但是,这个应用程序已经做出了一个可疑的决定,即存储关于不在AspNetUsers
中的用户的其他详细信息,而是存储在其他每个都有AspNetUsersID
的表中。
所以我创建了一个视图UserDetail
,它是这些其他表的联合,包括AspNetUsersID
,并将其映射到实体。但当然,我不能在这个观点上定义FK。
是否可以创建导航属性AspNetUser.UserDetails
然后我可以通过急切加载加载,而无需再次访问数据库?我尝试了以下代码(部分类的其余部分是使用DB到POCO生成器自动生成的):
public partial class AspNetUser
{
public virtual ICollection<UserDetail> UserDetails { get; set; }
}
internal partial class AspNetUserConfiguration
{
partial void InitializePartial()
{
HasMany(a => a.UserDetails).WithRequired().Map(MapUserDetail);
}
private void MapUserDetail(ForeignKeyAssociationMappingConfiguration config)
{
config.MapKey("AspNetUsersID");
}
}
导致:
AspNetUsersID:名称:类型中的每个属性名称必须是唯一的。已定义属性名称“AspNetUsersID”。
有没有办法完成我正在尝试做的事情,或者EF只是不支持这种类型的导航属性?