Как удалить подчеркивание в именах внешних ключей, сгенерированных Entity Framework 4.1 - PullRequest
7 голосов
/ 19 июля 2011

У меня есть связь с использованием Entity Framework 4.1, и мой внешний ключ генерируется автоматически, имена внешнего ключа подчеркиваются:

public class Setor : Entity
{
    public long Id { get; set; }
    public string Nome { get; set; }
    public virtual Secretaria Secretaria { get; set; }
}

public class Secretaria : Entity
{
    public long Id { get; set; }
    public string Nome { get; set; }
}

Этот сгенерированный внешний ключ с именем: Secretaria_Id в таблице Setor

Я хочу удалить это подчеркивание: SecretariaId

Есть ли способ сделать это? Я предпочитаю использовать DataAnnotations.

1 Ответ

9 голосов
/ 19 июля 2011

В Fluent API вы можете дать столбцам FK имя:

modelBuilder.Entity<Setor>()
    .HasOptional(s => s.Secretaria)
    .WithMany()
    .Map(a => a.MapKey("SecretariaId"));

Я думаю, что это невозможно с DataAnnotations.В качестве альтернативы вы можете выставить внешний ключ в свой класс модели, например, так:

public class Setor : Entity
{
    public long Id { get; set; }
    public string Nome { get; set; }
    public long? SecretariaId { get; set; }
    public virtual Secretaria Secretaria { get; set; }
}

Соглашения будут автоматически распознавать это как FK, а имя столбца будет именем свойства, то есть SecretariaId.

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