Às vezes vejo gente perguntando sobre a utilização de Entity Framework, principalmente sob a modalidade de Code First, com Sql Server Compact Edition. Veremos agora como é muito simples.
O Microsoft SQL Server Compact Edition
Essa é a menor e mais simples versão do Sql Server, na qual seus dados são salvos em um arquivo .sdf, diferente do arquivo .mdf que precisa ter o Sql Server instalado na máquina.
É uma versão recomendada para aplicações do antigo Windows Mobile, ou outra pequena aplicação que não precise de todos os recursos do Sql Server. É uma versão então embedded, ou seja: você só precisa adicionar o arquivo.
Além de ser embedded e simples essa versão tem como um bom atrativo ser gratuita. Porém não é recomendado para algo mais robusto, pois ele suporta somente o uso de até 4GBde dados. Também suporta até 256 conexões simultâneas (então não use em um site muito visitado, por exemplo), entre outras limitações.
Junto com a versão 4 do .Net framework foi lançado o SQL CE 4.0 com algumas melhorias de performance comparadas ao sucessor 3.5, que tinha como sina alguns problemas com identity.
Usando o EF com SQL CE
O EF desde sua versão 4 suporta trabalhar com SQL CE tanto no model first, database first e code first. Os passos para model e database first são simples:
- Adicione o edmx no seu projeto
- Selecione a conexão com a base de dados. Possivelmente aqui você não vai encontrar o conector para a versão 4.0, então escolha a 3.5
- Depois de terminado sua modelagem/pegar o modelo do sql vá no seu web.config
- Na string de conecção do seu emdx troque a propriedade ProviderManifestTokende 3.5 para 4.0
Voilá!
Mas o mais legal é pensar em usar EF com Code First! Para isso é ainda mais simples: só usar Database.DefaultConnectionFactory apontando para o SqlServer Ce:
Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0");
Voilá!
Assim você pode usar em códigos de bibliotecas ou em aplicações não-web, lembrando que ela deve ser chamada antes de começar a vida do seu contexto. No asp.net mvc você pode iniciarlizar no método Application_Start() (veja ele no Global.asax).
Baixe os exemplos (de graça)
E é isso pessoal, até a próxima!