salud reforma psiquiatrica mental ley españa c# .net entity-framework entity-framework-4 ef4-code-only

c# - mental - reforma psiquiatrica



¿Cómo no persistir el código de propiedad EF4 primero? (5)

Actualmente, sé de dos maneras de hacerlo.

  1. Agregue la palabra clave ''dinámica'' a la propiedad, que detiene al asignador que la persiste:

    private Gender gender; public dynamic Gender { get { return gender; } set { gender = value; } }

  2. Anule OnModelCreating en DBContext y reasigne todo el tipo, omitiendo las propiedades que no desea que persistan:

    protected override void OnModelCreating(System.Data.Entity.ModelConfiguration.ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity<Person>().MapSingleType(p => new { p.FirstName, ... }); }

Usando el método 2, si el equipo EF introduce Ignorar, podrás cambiar fácilmente el código a:

modelBuilder.Entity<Person>().Property(p => p.IgnoreThis).Ignore();

¿Cómo hago propiedades no persistentes usando codefirst EF4?

MS dice que hay un atributo StoreIgnore, pero no puedo encontrarlo.

http://blogs.msdn.com/b/efdesign/archive/2010/03/30/data-annotations-in-the-entity-framework-and-code-first.aspx

¿Hay alguna manera de configurar esto usando EntityConfiguration?


Agregar usando System.ComponentModel.DataAnnotations. Esquema a la clase modelo. (Debe incluir "SCHEMA")

Agregue la anotación de datos [NotMapped] a los campos que desea evitar que persistan (es decir, que no se guarden en la base de datos).

Esto evitará que se agreguen como una columna a la tabla en el db.

Tenga en cuenta que las respuestas anteriores pueden haber incluido estos bits, pero no tenían la cláusula completa de "uso". Simplemente dejaron el "esquema", en virtud del cual se define el atributo NotMapped.


No estoy seguro de si esto está disponible todavía.

En esta página de MSDN, se describen Ignorar atributo y API, pero a continuación, en los comentarios, alguien escribe el 4 de junio de 2010:

Podrá ignorar las propiedades en la próxima versión de Code First,


Si no desea usar Anotaciones, puede usar la API Fluent . Reemplace OnModelCreating y use el método Ignore() DbModelBuilder. Supongamos que tiene una entidad ''Canción'':

public class MyContext : DbContext { protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Song>().Ignore(p => p.PropToIgnore); } }

También puede usar EntityTypeConfiguration para mover configuraciones a clases separadas para una mejor capacidad de administración:

public class MyContext : DbContext { protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Configurations.Add(new SongConfiguration()); } } public class SongConfiguration : EntityTypeConfiguration<Song> { public SongConfiguration() { Ignore(p => p.PropToIgnore); } }


En EF Code-First CTP5, puede usar la anotación [NotMapped] .

using System.ComponentModel.DataAnnotations; public class Song { public int Id { get; set; } public string Title { get; set; } [NotMapped] public int Track { get; set; }