Olá,
Alguém sabe como fazer um desvia para que o Entity não execute o comando Create Database no modo CodeFirst?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá,
Alguém sabe como fazer um desvia para que o Entity não execute o comando Create Database no modo CodeFirst?
Olá, Richard!
Geralmente o Entity Framework é inteligente o bastante para criar um banco de dados somente se ele ainda não existe, caso contrário ele ignora o comando create database e começa a aplicar as migrações no banco de dados já existente. Pode falar um pouco mais sobre o seu problema para nós?
Olá Richard,
O que você pode fazer é pedir para o entity ignorar sua classe context na inicialização usando o seguinte código Database.SetInitializer<NomeDaSuaClasseContext>(null);. Aqui um link com um exemplo de como faz.
Olá,
Lucas, Obrigado pelo retorno!! Irei efetuar testes com este código.
Marcelo, No meu caso, estou utilizando como banco de dados o InterSystem Caché, e estou tendo dificuldades em utilizar o Entity para criar as tabelas.
Olá, Richard
Não conhecia ainda o InterSystems Caché, mas acabei encontrando esse pequeno tutorial para criar 2 tabelas com Code First no EF:
Por acaso é esse exemplo que você está tentando fazer funcionar? Se for, qual exatamente o erro que está obtendo? Se não for, recomendo começar por ele, para ter algo bem simples e testado pela InterSystems, antes de partir para um projeto mais complexo.
Este exemplo que eu tentei, vou fazer novos testes com ele e retorno.
Identifiquei o problema.
Quando o Entity executa create database "baseexemplo", o Caché não aceita as aspas duplas.
Fiz um teste executando sem as aspas duplas diretamente do painel de controle do mesmo e aceitou o comando create database baseexemplo.
Agora só resta saber como retirar as aspas duplas
No mesmo documento da Intersystems encontrei esse trecho, será que isso resolve o problema das aspas?
Select System > Configuration > SQL and Object Settings > TSQL Compatability Settings Set the DIALECT to MSSQL. Set QUOTED_IDENTIFIER to ON. Click Save.
isto ajudou, mas tive que ativar outras configurações de SQL no painel.
chegou a criar a base de dados, tabelas, porém não gerou a Migration, e está retornando o erro 'VARBINARY' não é um tipo suportado para CAST
Olá,
O problema acima que mencionei é no SQL abaixo.
Fiz um teste retirando o comando cast e inserindo apenas o conteúdo, com isso este insert funciona.
Há alguma maneira de retirar este cast
Insert que não funciona:
insert "dbo"."__MigrationHistory"("MigrationId", "ContextKey", "Model", "ProductVersion") VALUES ('201706131048154_InitialCreate', 'CACHE2.SchoolContext', cast( 0x1F8B0800000000000400CD59CD6EE33610BE17E83B083A1 ... D89CC74FF4E1285E7DF81769242CE52E1F0000 as varbinary(1549)), '6.1.3-40302')
Insert que funciona:
insert "dbo"."__MigrationHistory"("MigrationId", "ContextKey", "Model", "ProductVersion") VALUES ('201706131048154_InitialCreate', 'CACHE2.SchoolContext', '0x1F8B0800000000000400CD59CD6EE33610BE17E83B083A1 ... D89CC74FF4E1285E7DF81769242CE52E1F0000 ', '6.1.3-40302')