Escludere un campo / proprietà dal database con Entity Framework 4 e Code-First

Mi piacerebbe sapere che esiste un modo per escludere alcuni campi dal database? Ad esempio:

public class Employee { public int Id { get; set; } public string Name { get; set; } public string FatherName { get; set; } public bool IsMale { get; set; } public bool IsMarried { get; set; } public string AddressAs { get; set; } } 

Come posso escludere il campo AddressAs dal database?

Nella versione attuale l’unico modo per escludere una proprietà è mappare esplicitamente tutte le altre colonne:

 builder.Entity().MapSingleType(e => new { e.Id, e.Name, e.FatherName, e.IsMale, e.IsMarried }); 

Poiché AddressAs non è referenziato, non fa parte dell’entity framework / database.

Il team EF sta valutando l’ aggiunta di qualcosa del genere:

 builder.Entity().Exclude(e => e.AddressAs); 

Ti suggerisco di dire di lasciare un commento sul blog EFDesign, richiedendo questa funzionalità 🙂

Spero che questo ti aiuti

alex

per riferimento futuro: è ansible utilizzare le annotazioni dei dati. MSDN EF – Codice Prime annotazioni di dati

 [NotMapped] public string AddressAs { get; set; } 

So che questa è una vecchia domanda, ma nel caso qualcuno (come me) provenga dalla ricerca …

Ora è ansible in Entity Framework 4.3 fare questo. Lo faresti in questo modo:

 builder.Entity().Ignore(e => e.AddressAs); 

È anche ansible aggiungere la colonna che si desidera ignorare come proprietà shadow in DbContext:

 builder.Entity().Property("AddressAs"); 

Quindi puoi eseguire una query su tale colonna in questo modo:

 context.Employees.Where(e => EF.Property(e, "AddressAs") == someValue);