Eu tenho uma entidade e devo configurar o Entity Framework para mapeá-la para uma tabela de banco de dados com nome diferente.
Posso fazer isso facilmente com Code First DataAnnotations ( DataAnnotations.Schema.TableAttribute ).
Mas, devido a limitações, agora tenho que usar a API Code First Fluent (meus objetos de domínio serão usados por clientes externos, então eles não devem ser específicos de tecnologia - por exemplo, ter qualquer referência a DataAnnotations)
Eu pesquisei no MSDN, mas não encontrei nada. Então, é possível e como?
Obrigado.
Respostas:
Você usará o
.ToTable()
método:modelBuilder.Entity<Department>().ToTable("t_Department");
Fonte: MSDN: http://msdn.microsoft.com/en-us/data/jj591617.aspx
fonte
Você também pode usar a anotação Tabela:
[Table("InternalBlogs")] public class Blog
Consulte: Anotações de dados do código inicial
fonte
Use o método ToTable:
public class MyEntityMap : EntityTypeConfiguration<MyEntity> { public const string TableName = "MyEntity"; public MyEntityMap() { ToTable(TableName); Property(t => t.Id); } }
fonte
OnModelCreating
método, você tem que fazer:modelBuilder.Configurations.Add(new MyEntityMap());
onde, em vez de apenas adicionar ummodelBuilder.Entity<MyEntity>().ToTable("MyEntityTable");
, não, essa não é a maneira mais limpa, a menos que você também tenha outro mapeamento para fazer para essa entidade.