Как отключить автоматическое копирование свойств в Entity Framework
Я решил использовать свободное отображение в Entity Framework. Моим намерением было сопоставить все по коду без каких-либо атрибутов и функций автоматического сопоставления. Лучший способ, который я нашел, - это класс EntityTypeConfiguration, который я реализую для каждой сущности в моем проекте.
Позже я добавляю собственность к одному из моих лиц. Это свойство не требуется для сохранения. Я ожидал, что пока я не добавлю сопоставление для этого свойства, оно будет игнорироваться базой данных и уровнем персистентности. К сожалению, это не работает таким образом, и свойство отображается. Единственный способ - использовать метод Ignore или атрибут NotMapped, но я не хочу делать это явно.
Есть ли способ, чтобы помешать Entity Framework от автоподключения? Я пытался удалить все соглашения из DbModelBuilder, но это не помогает.
2 ответа
Насколько я знаю, другого пути нет. Вам нужно использовать либо Ignore()
или же [NotMapped]
, Я предпочитаю первый, так как он не загромождает модель.
На самом деле я пробовал много способов: - пользовательское соглашение для удаления сопоставленных свойств - удаление всех соглашений
Но самым простым (и наиболее чистым) способом было использование отражения внутри класса отображения и отключение всех отображений свойств, которые не были настроены.
Код для этого (а также пример использования) находится в моей публичной сути. https://gist.github.com/hidegh/36d92380c720804dee043fde8a863ecb