Je crois comprendre que l’atsortingbut [NotMapped]
n’est pas disponible jusqu’à l’EF 5 qui se trouve actuellement dans CTP, nous ne pouvons donc pas l’utiliser en production.
Comment puis-je ignorer les propriétés dans EF 4.1?
MISE À JOUR: J’ai remarqué quelque chose d’étrange. J’ai obtenu l’atsortingbut [NotMapped]
mais pour une raison quelconque, EF 4.1 crée toujours une colonne nommée Disposed dans la firebase database même si le public bool Disposed { get; private set; }
public bool Disposed { get; private set; }
public bool Disposed { get; private set; }
est marqué avec [NotMapped]
. La classe implémente IDisposeable
sûr IDisposeable
mais je ne vois pas en quoi cela devrait être important. Des pensées?
Vous pouvez utiliser l’annotation de données d’atsortingbut NotMapped
pour indiquer à Code-First d’exclure une propriété particulière
public class Customer { public int CustomerID { set; get; } public ssortingng FirstName { set; get; } public ssortingng LastName{ set; get; } [NotMapped] public int Age { set; get; } }
[NotMapped]
atsortingbut [NotMapped]
est inclus dans l’espace de noms System.ComponentModel.DataAnnotations
.
Vous pouvez également le faire avec la fonction OnModelCreating
Fluent API
OnModelCreating
dans votre classe DBContext
:
protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity().Ignore(t => t.LastName); base.OnModelCreating(modelBuilder); }
http://msdn.microsoft.com/en-us/library/hh295847(v=vs.103).aspx
La version que j’ai vérifiée est EF 4.3
, qui est la dernière version stable disponible lorsque vous utilisez NuGet.
Edit : SEP 2017
Annotation des données
Si vous utilisez le kernel asp.net ( 2.0 au moment d’écrire ces [NotMapped]
atsortingbut [NotMapped]
peut être utilisé au niveau de la propriété.
public class Customer { public int Id { set; get; } public ssortingng FirstName { set; get; } public ssortingng LastName { set; get; } [NotMapped] public int FullName { set; get; } }
API Fluent
public class SchoolContext : DbContext { public SchoolContext(DbContextOptions options) : base(options) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity().Ignore(t => t.FullName); base.OnModelCreating(modelBuilder); } public DbSet Customers { get; set; } }
À partir de EF 5.0, vous devez inclure l’espace de noms System.ComponentModel.DataAnnotations.Schema
.