我的理解是,在目前使用CTP的EF 5之前, [NotMapped]
属性不可用,因此我们无法在 生产环境 中使用它 .
如何将EF 4.1中的属性标记为忽略?
UPDATE: 我注意到其他一些奇怪的东西 . 我得到了 [NotMapped]
属性,但由于某种原因,即使 public bool Disposed { get; private set; }
标记为 [NotMapped]
,EF 4.1仍会在数据库中创建一个名为Disposed的列 . 该类实现了 IDisposeable
当然,但我不知道这应该如何重要 . 有什么想法吗?
2 回答
从EF 5.0开始,您需要包含
System.ComponentModel.DataAnnotations.Schema
命名空间 .您可以使用
NotMapped
属性数据批注来指示Code-First排除特定属性[NotMapped]
属性包含在System.ComponentModel.DataAnnotations
名称空间中 .您也可以使用
DBContext
类中的Fluent API
覆盖OnModelCreating
函数执行此操作:http://msdn.microsoft.com/en-us/library/hh295847(v=vs.103).aspx
我检查的版本是
EF 4.3
,这是使用NuGet时可用的最新稳定版本 .Edit :2017年9月
Asp.NET核心(2.0)
Data annotation
如果您使用的是asp.net核心(在撰写本文时为2.0),则可以在属性级别使用
[NotMapped]
属性 .Fluent API