Как настроить имя столбца внешнего ключа, используя Entity Framework Code-first - PullRequest
9 голосов
/ 18 апреля 2011

У меня есть следующая модель

public class Foo
{
    public int Id { get; set; }
    public IList<Bar> Bars { get; set; }
}

public class Bar
{
    public int Id { get; set; }
}

Когда я сначала генерирую схему базы данных с помощью кода EF, он создает следующие таблицы:

Foo

  • Id (PK, int, не null)

Bar

  • Id (PK, int, не null)
  • Foo_Id (FK, int null)

Можно ли изменить имя внешнего ключа Foo_Id с помощью атрибутов?

РЕДАКТИРОВАТЬ: Вот версия, которая делает то, что мне нужно:

public class Foo
{
    public int Id { get; set; }

    [ForeignKey("AssignedToBarId")]
    public IList<Bar> Bars { get; set; }
}

public class Bar
{
    public int AssignedToBarId { get; set; }
    public int Id { get; set; }
}

1 Ответ

8 голосов
/ 18 апреля 2011

Я думаю, что это можно сделать, как показано ниже:

защищенное переопределение void OnModelCreating (ModelBuilder modelBuilder) { modelBuilder.Entity.Map (c => c.MapKey (u => u.Id, "AssignedToBarID")); }

Или, может быть:

[ForeignKey("AssignedToBarID")]
public IList<Bar> Bars { get; set; }

ПРИМЕЧАНИЕ: я не проверял ни один из них. Это всего лишь предложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...