2011-05-11 31 views
5

En LINQ to SQL hay una convención muy simple para decirle al asignador qué esquema de base de datos usar: [Table(Name = "SchemaName.TableName")].Código Entity Framework Primero configure el esquema por entidad

¿Hay algo similar en EF CF 4.1? Preferiría no usar anotaciones en las clases de entidad para mantenerlas lo más puramente posible. Por el bien de mantener mi proyecto en movimiento, haré el sacrificio sin embargo.

Esta pregunta está cerca, pero no es exactamente lo que necesito. Incluso puede estar desactualizado, ya que parece que se refiere a clases que han cambiado de nombre o han tenido cambios de última hora desde la versión reciente de EF 4.1: Entity Framework 4: Code First - Creating db in another schema? MapSingleType?

EDIT: también debo mencionar que mi aplicación tiene tres esquemas en este momento, así que no puedo usar necesariamente una solución que solo cambie el esquema predeterminado de "dbo" a "otherschema".

Respuesta

8

La respuesta vinculada es antigua y no funciona porque las convenciones personalizadas se eliminaron de la versión final. Si desea cambiar el nombre del esquema, puede utilizar la API con fluidez:

public class Context : DbContext 
{ 
    public DbSet<YourType> YourTypeSet { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     base.OnModelCreating(modelBuilder); 
     modelBuilder.Entity<YourType>().ToTable("TableName", "SchemaName"); 
    } 
} 
+0

¡Quiero establecer el nombre de la tabla automáticamente y configurar el esquema manualmente! ¿pero cómo? debería haber un método como ToSchema() ... pero no es –

Cuestiones relacionadas