property not framework c# .net entity-framework ef-code-first entity-framework-4.1

c# - property - entity framework not include



Ignorar una propiedad de clase en Entity Framework 4.1 Código primero (2)

Mi entendimiento es que el atributo [NotMapped] no está disponible hasta EF 5, que actualmente está en CTP, por lo que no podemos usarlo en producción.

¿Cómo puedo marcar propiedades en EF 4.1 para ser ignorado?

ACTUALIZACIÓN: Noté algo más extraño. Conseguí que el atributo [NotMapped] funcionara, pero por algún motivo, EF 4.1 aún crea una columna denominada Disposed en la base de datos, aunque el public bool Disposed { get; private set; } public bool Disposed { get; private set; } public bool Disposed { get; private set; } está marcado con [NotMapped] . La clase implementa IDisposeable por supuesto, pero no veo cómo debería importar eso. ¿Alguna idea?


A partir de EF 5.0, debe incluir el espacio de nombres System.ComponentModel.DataAnnotations.Schema .


Puede usar la anotación de datos del atributo NotMapped para indicar a Code-First que excluya una propiedad en particular

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] se incluye en el espacio de nombres System.ComponentModel.DataAnnotations .

Alternativamente, puede hacer esto con OnModelCreating Fluent API anulando la función OnModelCreating en su clase DBContext :

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

La versión que verifiqué es EF 4.3 , que es la última versión estable disponible cuando usas NuGet.

Edición : SEP 2017

Asp.NET Core (2.0)

Anotación de datos

Si está utilizando asp.net core ( 2.0 en el momento de escribir este artículo ), el atributo [NotMapped] se puede usar en el nivel de propiedad.

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

API fluida

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; } }