Насколько я понимаю, этот [NotMapped]
атрибут недоступен до EF 5, который в настоящее время находится в CTP, поэтому мы не можем использовать его в производстве.
Как пометить свойства в EF 4.1, чтобы они игнорировались?
ОБНОВЛЕНИЕ: я заметил кое-что еще странное. Я получил [NotMapped]
атрибут для работы, но по какой-то причине EF 4.1 все еще создает столбец с именем Disposed в базе данных, даже если public bool Disposed { get; private set; }
он помечен значком [NotMapped]
. IDisposeable
Конечно, класс реализует, но я не понимаю, как это должно иметь значение. Есть предположения?
Ответы:
Вы можете использовать
NotMapped
аннотацию данных атрибута для указания Code-First исключить конкретное свойство[NotMapped]
атрибут включен вSystem.ComponentModel.DataAnnotations
пространство имен.В качестве альтернативы вы можете сделать это с помощью
Fluent API
переопределяющейOnModelCreating
функции в вашемDBContext
классе:http://msdn.microsoft.com/en-us/library/hh295847(v=vs.103).aspx
Я проверил версию
EF 4.3
, которая является последней стабильной версией, доступной при использовании NuGet.Изменить : сентябрь 2017
Asp.NET Core (2.0)
Аннотация данных
Если вы используете ядро asp.net ( 2.0 на момент написания этой статьи ),
[NotMapped]
атрибут можно использовать на уровне свойств.Свободный API
источник
Начиная с EF 5.0, вам необходимо включить
System.ComponentModel.DataAnnotations.Schema
пространство имен.источник