Tengo una entidad y debo configurar Entity Framework para asignarla a una tabla de base de datos con un nombre diferente.
Puedo hacer esto fácilmente con Code First DataAnnotations ( DataAnnotations.Schema.TableAttribute ).
Pero debido a las limitaciones, ahora tengo que usar Code First Fluent API (mis objetos de dominio serán utilizados por clientes externos, por lo que no deberían ser específicos de la tecnología, por ejemplo, tener referencias a DataAnnotations)
Busqué en MSDN pero no encontré nada. Entonces, ¿es posible y cómo?
Gracias.
Respuestas:
Usarás el
.ToTable()
método:modelBuilder.Entity<Department>().ToTable("t_Department");
Fuente: MSDN: http://msdn.microsoft.com/en-us/data/jj591617.aspx
fuente
También puede utilizar la anotación de tabla:
[Table("InternalBlogs")] public class Blog
Ver: Anotaciones de datos de Code First
fuente
Utilice el método ToTable:
public class MyEntityMap : EntityTypeConfiguration<MyEntity> { public const string TableName = "MyEntity"; public MyEntityMap() { ToTable(TableName); Property(t => t.Id); } }
fuente
OnModelCreating
método, tiene que hacer:modelBuilder.Configurations.Add(new MyEntityMap());
donde en lugar de podría haber agregado unmodelBuilder.Entity<MyEntity>().ToTable("MyEntityTable");
no, esta no es la forma más limpia a menos que también tenga otro mapeo que hacer para esta entidad.