Как мы можем изменить соглашение об именовании внешних ключей в БД в EF Code First CTP5?
Я использую Entity Framework Code First CTP5, и я пытаюсь найти способ добавить соглашение, чтобы изменить, как генерируются имена внешних ключей. Вот пример:
public class Lead
{
public int Id {get; set;}
// A lot of other fields
public virtual User AssignedTo { get; set; }
}
public class User
{
public int Id {get; set;}
}
Свинец может быть связан с пользователем. Поле, сгенерированное в БД для AssignedTo в таблице Leads, называется UserId.
Моя модель полностью независима от структуры сущностей. Поэтому я не хочу использовать атрибуты из EF. Я хотел бы использовать соглашения, если это возможно, например, назовите поле AssignedToUserId.
1 ответ
Решение
Я не уверен, что это будет возможно с подключаемыми соглашениями, но вы можете использовать свободный API для достижения этого:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Lead>()
.HasRequired(l => l.AssignedTo)
.WithMany()
.IsIndependent()
.Map(c => c.MapKey(u => u.Id, "AssignedToUserId"));
}