Имя внешнего ключа Codefirst имеет повторное имя таблицы - как установить явно? - PullRequest
0 голосов
/ 09 мая 2011

У меня есть 2 таблицы: 1) Родитель 2) Дочерний

В codefirst у меня есть следующее определение:

public class Parent 
{
    public int ParentId { get; set; }
    public ICollection<Child> child { get; set; }
}

Однако в базе данных дочерняя таблица имеет следующий внешний ключопределены:

ParentParentId (FK, int, NULL)

Как мне убедиться, что он просто указывает ParentId во внешнем ключе?Нужно ли явно устанавливать родительский ключ, используя свободную конфигурацию?

1 Ответ

1 голос
/ 09 мая 2011

Да, вы должны либо включить свойство внешнего ключа в дочернюю сущность:

public class Child
{
    public int ChildId { get; set; }
    public int ParentId { get; set; } // FK
    public virtual Parent { get; set; }
}

Или вы должны переименовать колонку с помощью API:

modelBuilder.Entity<Child>()
            .HasRequired(c => c.Parent)
            .WithMany(p => p.Childs)
            .Map(m => m.MapKey("ParentId"));
...