如何使用FluentMigrator创建一对一外键

时间:2019-04-22 08:19:56

标签: c# fluent-migrator db-first

我正在使用以下代码创建外键:

Create.ForeignKey("FK_Table1_Table2")
    .FromTable("Table1").ForeignColumn("Table1_ID")
    .ToTable("Table2").PrimaryColumn("Table2_ID");

结果,我之间有了一对多的关系:

public class Table1
{
    public int Table1_ID { get; set; }
    public virtual Table2 Table2 { get; set; }
}


public class Table2
{
    public Table2()
    {
        this.Tables1 = new HashSet<Table1>();
    }
    public int Table2_ID { get; set; }
    public virtual ICollection<Table1> Tables1 { get; set; }
}

但我想看看:

public class Table2
{
    public int Table2_ID { get; set; }
    public virtual Table1 Table1 { get; set; }
}

使用FluentMigrator是否可以做到这一点?

1 个答案:

答案 0 :(得分:2)

对于多对一的FK关系,关系数据库没有特殊的概念。 FK成为“ one”的唯一方法是它也具有唯一约束。

因此,我相信您应该在外键创建代码之后添加以下内容:

Create.UniqueConstraint()
    .OnTable("Table1").Column("Table1_ID");