在“entity framework4.1代码优先”中忽略类属性

我的理解是[NotMapped]属性不可用,直到目前在CTP中的EF 5,所以我们不能在生产中使用它。

我如何标记EF 4.1中的属性被忽略?

更新:我注意到别的奇怪。 我得到了[NotMapped]属性,但由于某种原因,EF 4.1仍然在数据库中创build一个名为Disposed的列,即使public bool Disposed { get; private set; } public bool Disposed { get; private set; } public bool Disposed { get; private set; }[NotMapped]标记。 当然,这个类实现了IDisposeable ,但我不明白这应该如何。 有什么想法吗?

2 Solutions collect form web for “在“entity framework4.1代码优先”中忽略类属性”

您可以使用NotMapped属性数据注释来指示Code-First排除特定的属性

 public class Customer { public int CustomerID { set; get; } public string FirstName { set; get; } public string LastName{ set; get; } [NotMapped] public int Age { set; get; } } 

[NotMapped]属性包含在System.ComponentModel.DataAnnotations命名空间中。

您也可以使用Fluent API在您的DBContext类中重写OnModelCreating函数:

 protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Customer>().Ignore(t => t.LastName); base.OnModelCreating(modelBuilder); } 

http://msdn.microsoft.com/en-us/library/hh295847(v=vs.103).aspx

我检查的版本是EF 4.3 ,这是使用NuGet时可用的最新稳定版本。


编辑SEP 2017

Asp.NET核心(2.0)

数据注释

如果您正在使用asp.net核心( 编写本文时为2.0 ),则可以在属性级别使用[NotMapped]属性。

 public class Customer { public int Id { set; get; } public string FirstName { set; get; } public string LastName { set; get; } [NotMapped] public int FullName { set; get; } } 

stream利的API

 public class SchoolContext : DbContext { public SchoolContext(DbContextOptions<SchoolContext> options) : base(options) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Customer>().Ignore(t => t.FullName); base.OnModelCreating(modelBuilder); } public DbSet<Customer> Customers { get; set; } } 

从EF 5.0起,您需要包含System.ComponentModel.DataAnnotations.Schema命名空间。

  • 为什么。包容很慢? 通过主键获取多个实体的最有效方法?
  • entity framework代码第一。 find主键
  • EF 4.1代码优先的复合钥匙
  • 如何将parameter passing给DbContext.Database.ExecuteSqlCommand方法?
  • ASP.NET MVC中每个请求一个DbContext(没有IOC容器)
  • 更好的方式来查询一个页面的数据,并获得总数在entity framework4.1?
  • entity framework代码首先定义关系/键
  • 在组织方面,当我使用entity framework代码时,我应该在哪里进行常见的查询?
  • entity framework:查询子实体
  • EF代码优先:如何获得随机行
  • 如何在entity framework中包含子对象的子对象5