Я не знаю, что именно вы имеете в виду под "файлами конфигурации", но на самом деле есть три основных варианта определения модели:
Условные обозначения: при создании классов модели выНазовите свои свойства таким образом, чтобы EF мог автоматически определять первичные ключи, внешние ключи, отношения и т. д.Если вы делаете это, следовательно, вам не нужны ни аннотации данных, ни перезапись OnModelCreating
.
Аннотации данных: полезно, когда вы не можете или не хотите следовать правилам соглашения.Например, у вас есть существующая база данных, имена столбцов которой не соответствуют стандартным правилам именования EF, например, если у вас есть ключевой столбец с именем, которое EF не распознает как ключ:
public class User
{
[Key]
public int User_Code { get; set; }
}
Свободный API в OnModelCreating
: для расширенных сценариев сопоставления, которые нельзя определить с помощью аннотаций данных.Примеры: здесь .
Для работы я считаю, что не имеет значения, что вы используете.Подход - это вопрос вкуса и сложности вашей модели.EF создает внутреннее представление модели только один раз за время существования экземпляра приложения.(Это можно увидеть, установив точку останова в OnModelCreating
: вы достигнете этой точки останова только один раз, независимо от того, как часто вы создаете новый DbContext
.)