实体框架WithRequired流利的api到数据注释的映射

时间:2018-10-17 17:10:45

标签: c# entity-framework

我正在尝试在代码优先实体框架项目中使用数据注释方法。

这是我的实体:(显示有限的字段)

public partial class CUSTOMEREXT
{
    [StringLength(36)]
    public string ID { get; set; }

    public virtual CUSTOMER CUSTOMER { get; set; }
}

public partial class CUSTOMER
{
    [StringLength(36)]
    public string ID { get; set; }

    public virtual CUSTOMEREXT CUSTOMEREXT { get; set; }
}

Fluent API :(有效)

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<CUSTOMER>()
        .Property(e => e.ID)
        .IsFixedLength()
        .IsUnicode(false);

    modelBuilder.Entity<CUSTOMER>()
        .HasOptional(e => e.CUSTOMEREXT)
        .WithRequired(e => e.CUSTOMER);

    modelBuilder.Entity<CUSTOMEREXT>()
        .Property(e => e.ID)
        .IsFixedLength()
        .IsUnicode(false);      
}

动态生成模型构建器:(这不起作用)

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Configurations.AddFromAssembly(Assembly.GetAssembly(GetType())); //Current Assembly
    base.OnModelCreating(modelBuilder);
}

要测试的代码:

Model1 model = new Model1();
var outp = model.Set<CUSTOMEREXT>().ToList();
var out1p = model.Set<CUSTOMER>().ToList();

错误:

  

无法确定之间的关联的主要目的   类型“ OraclePOC.CUSTOMER”和“ OraclePOC.CUSTOMEREXT”。校长   必须使用以下任一方法显式配置此关联的末尾   关系流利的API或数据注释。

通过查看this,我知道我必须将WithRequired转换为数据注释属性。不确定如何?

有什么主意吗?

1 个答案:

答案 0 :(得分:0)

我能够弄清楚这一点:

添加kubeadm init --apiserver-cert-extra-sans=private-ip,public-ip \ --pod-network-cidr $CALICO_NETWORK \ --apiserver-advertise-address=private-ip 属性:

[Required]