首页 > 解决方案 > EF Core - 导航和属性包

问题描述

EF Core 是否支持属性包实体上的导航或指向属性包实体的实体上的导航?

有这堂课

public class PropertyBagEntityDetail
{
    public string StringProperty { get; set; }

    public Dictionary<string, object> Parent { get; set; }
}

我试过这个:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
           modelBuilder.SharedTypeEntity<Dictionary<string, object>>("PropertyBagEntity", bb =>
            {
                bb.Property<int>("IntProperty");
                bb.Property<string>("StringProperty");
                bb.Property<DateTime>("DateTimeProperty");
            });

            modelBuilder.Entity<PropertyBagEntityDetail>().HasOne(itm => itm.Parent).WithMany();
}

或这个 :

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
 
             modelBuilder.SharedTypeEntity<Dictionary<string, object>>("PropertyBagEntity", bb =>
            {
                bb.Property<int>("IntProperty");
                bb.Property<string>("StringProperty");
                bb.Property<DateTime>("DateTimeProperty");
                bb.HasMany<PropertyBagEntityDetail>("Details").WithOne(itm=>itm.Parent);
            });

 
}

两者都返回

导航“详细信息”无法添加到实体类型“PropertyBagEntity (Dictionary<string, object>)”,因为基础类型上没有相应的 CLR 属性,并且导航属性无法在影子状态下添加。

有没有办法实现?

标签: c#entity-framework-corepropertybag

解决方案


推荐阅读