Modificando o prefixo do esquema com Entity Framework & amp; SQL Server

Ao trabalhar com o Entity Framework, ele usará o prefixo de esquema que o dev db usa (se estiver gerando um modelo de um designer) ou assume dbo ao executar o código primeiro no SQL Server. Em um projeto recente, precisei usar EF em um banco de dados em que o cliente final pode ter modificado o nome do esquema, de modo que o SQL gerado pelo EF estava falhando em resolver alguns objetos.

Felizmente, a solução foi bastante direta:

Na sua classe de contexto de dados, você pode modificar o prefixo do esquema no método OnModelCreating – no meu caso, adicionei a seguinte alteração:

prote cted override void OnModelCreating (DbModelBuilder modelBuilder)
{
var schema = ConfigurationManager.AppSettings [“DbSchema”];
se (! string.IsNullOrWhiteSpace (schema))
{
modelBuilder.HasDefaultSchema (schema);
}

O permite que eu especifique o prefixo a ser usado em instâncias específicas do meu aplicativo adicionando uma chave a web.config.