2011-12-09 7 views
6

tengo una clase:Cómo direccionar una propiedad como NOT una columna en EF 4.1

public class classParty 
{ 
    private int _arrivedCount; 

    public int PartyID {get; private set;} 
    public DateTime PartyDate {get; private set;} 
    public int ArrivedCount 
    { 
     get 
     { 
      return _arrivedCount; 
     } 

     set 
     { 
      _arrivedCount = value; 
     } 
    } 
} 

que puede asignar el PartyId y la PartyDate pero no tengo una columna para ArrivedCount (que es un momento en cuenta de tiempo, no persiste).

¿Cómo le digo a EF 4.1 que deje de buscar una columna llamada "ArrivedCount"? No está en la mesa. No va a estar en la mesa. Es simplemente una propiedad del objeto y eso es todo.

Gracias de antemano.

EDIT: Aquí está la configuración de API Fluent para claseParty.

public class PartyConfiguration : EntityTypeConfiguration<classParty> 
{ 
    public PartyConfiguration() 
     : base() 
    { 
     HasKey(p => p.PartyID); 

     Property(p => p.PartyID) 
      .HasColumnName("PartyID") 
      .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity) 
      .IsRequired(); 
     Property(p => p.PartyDate) 
      .HasColumnName("PartyDate") 
      .IsRequired(); 

     ToTable("Party"); 
    } 
} 

Respuesta

8
modelBuilder.Entity<classParty>().Ignore(x => x.ArrivedCount); 
+0

Sí, eso es todo. ¿Hay una línea de código para agregar a la clase EntityTypeConfiguration? Me gustaría que todas las asignaciones (y "unmappings") estén en un solo lugar. Pero si no, esto funciona bien. –

+1

@TomPadilla: Use simplemente 'Ignore (x => x.ArrivedCount);' en su constructor 'PartyConfiguration'. – Slauma

14

Con anotaciones de datos:

[NotMapped] 
public int ArrivedCount 
//... 

O usando API Fluido:

modelBuilder.Entity<classParty>() 
    .Ignore(c => c.ArrivedCount); 
Cuestiones relacionadas