Как создать один-один внешний ключ с помощью FluentMigrator - PullRequest
1 голос
/ 22 апреля 2019

Я использую этот код для создания внешнего ключа:

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 Ответ

2 голосов
/ 22 апреля 2019

Реляционные базы данных не имеют специального понятия для отношений много / один к одному FK. Единственный способ, которым FK становится «единым», - это если у него также есть уникальное ограничение.

Поэтому я считаю, что вы должны добавить что-то вроде этого после кода создания внешнего ключа:

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