首先是代码 - 每个关系创建表

时间:2015-02-10 13:54:38

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

我有一些有一对多关系的课程,如下所示:

public class A
{
    public int Ax { get; set; }
    public int Ay { get; set; }
}

public class B
{
    public int Id { get; set; }
    public int Bx { get; set; }
    public List<A> By { get; set; }
}

public class C
{
    public int Id { get; set; }
    public int Cx { get; set; }
    public List<A> Cy { get; set; }
}

我需要当A具有一对多关系时,它会为该关系生成表格而不需要创建具体的类,如AB或AC,因此在此示例中,最终数据库应该具有 4表之类的东西:
表B(id,bx)1 -----&gt; 1 .. *表BA(B_id *,ax,ay)
表C(id,cx)1 -----&gt; 1 .. *表CA(C_id *,ax,ay)
*必填字段

和EF配置如:

public class AConfiguration : ComplexTypeConfiguration<A>
{
    public AConfiguration()
    {
        ToTable(); // this line force all relationship create table
    }
}

public class BConfiguration : EntityTypeConfiguration<B>
{
    public BConfiguration()
    {
        ToTable("B");
        HasKey(p => p.Id);
        HasRequired(b=>b.By).WithRequiredDependent();
    }
}

public class CConfiguration : EntityTypeConfiguration<C>
{
    public CConfiguration()
    {
        ToTable("C");
        HasKey(p => p.Id);
        HasRequired(c=>c.Cy).WithRequiredDependent();
    }
}

如何配置EF以从我的班级生成数据库架构?

0 个答案:

没有答案