Entity Framework 4 имя столбца ссылки только для кода - PullRequest
0 голосов
/ 16 апреля 2010

Я создал классы:

public class Country
{
  public long CountryId {get;set;}
  public string CountryName {get;set;}
}

public class Profile
{
  public long ProfileId {get;set;}
  public string ProfileName {get;set;}
  public Country Country {get;set;}
}

и конфигурация для профиля:

public class ProfileConfiguration : EntityConfiguration<Profile>
{
  public IlluminatiCoreProfileConfiguration()
  {
    Relation(p => p.Country);
  }
}

Затем я создаю контекст и запускаю context.CreateDatabase (). Новая база данных содержит таблицу Профили со столбцом Country_CountryId. Как я могу написать конфигурацию для изменения имени столбца на «CountryId»?

Спасибо.

1 Ответ

0 голосов
/ 24 февраля 2011

В вашем POCO для профиля:

public class Profile
{
    public long ProfileId {get;set;}
    public string ProfileName {get;set;}

    [ForeignKey("CountryId")]
    public Country Country {get;set;}
}

В вашем POCO для страны

[Table("Country")]
public class Country
{
    [Column(Name = "CountryId")]
    public int CountryId {get;set;}
}

Это перезаписывает отображение мертвого объекта Object_Property, которое EF создает по умолчанию. Вы можете указать это в любой таблице / свойстве, чтобы переопределить фактические соглашения об именах столбцов БД.

EDIT: Я думаю, что пространство имен для этих аннотаций было бы полезно:

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