为没有外键的基于视图的实体创建导航属性

时间:2016-08-10 15:20:52

标签: c# entity-framework ef-code-first

我正在开发一个使用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只是不支持这种类型的导航属性?

0 个答案:

没有答案