在实体框架 (EF) 4.1 代码优先中,可以使用 [NotMapped]
属性数据注释将某些属性从数据库映射中排除。此注释应用于实体类中的相应属性。
<code class="language-csharp">public class Customer { public int CustomerID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } [NotMapped] public int Age { get; set; } }</code>
[NotMapped]
属性是 System.ComponentModel.DataAnnotations
命名空间的一部分。
此外,您可以使用 Fluent API 覆盖 DbContext 类中的 OnModelCreating
函数。
<code class="language-csharp">protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Customer>().Ignore(t => t.LastName); base.OnModelCreating(modelBuilder); }</code>
请注意,原始问题中建议的 EF 版本已过时。截至 NuGet 的最新稳定版本是 EF 4.3。
更新 (2017 年 9 月): Asp.NET Core (2.0)
对于 Asp.NET Core 2.0 及更高版本,您可以使用前面提到的 [NotMapped]
属性。此外,Fluent API 的使用方法如下:
<code class="language-csharp">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; } }</code>
以上是如何首先忽略实体框架代码中的属性?的详细内容。更多信息请关注PHP中文网其他相关文章!