Salve pessoal!

Voltando a ativa mais uma vez, me aventurando pelo mundo “microsoftiano” do C# .Net utilizando framework MVC3.

Desenvolvendo um projeto de um cliente na plataforma .Net 4.0, resolvi utilizar a abordagem Model First, onde crio o diagrama de classes e os relacionamento direto pelo Visual Studio para depois gerar o banco e as classes(Depois escrevo um pouco mais sobre isso).

Durante o desenvolvimento, sem problemas, afinal o ambiente de desenvolvimento estava bem atualizado (VS2010, SQLServer 2008, .Net 4.0) tudo lindão :D. Quando eu fui realizar o deploy aquela tristeza. O Servidor do Cliente(cloud da Locaweb) era um Windows 2003, com .net 2.0  e SQLServer 2005. Chorei na hora.

Primeiro ponto foi que o VS2010 só estava gerando o DDL para criação do banco para o SQLServer 2008, então fui pesquisar como gerar a DDL para SQLServer 2005. Abrindo o arquivo .edmx (arquivo que possui a descrição das entidades) no edior XML, encontrei na linha 7 essa declaração:

Foi só trocar para 2005 e o problema começou a ser resolvido, até que… o SQLServer 2005, não possue os tipos de dados Date e Time, somente o DateTime. Troquei todos os campos Date e Time para DateTime. Finalmente a DDL de criação do banco estava executando com sucesso.

Problema número 2, teria que alterar boa parte da aplicação, pois os campos Date e Time agora eram DateTime. Ai que veio o pulo do gato.

Em vez de mudar a aplicação para passar a utilizar o campo DateTime, criei um campo novo que armazenará o Datetime e modifiquei o getter e setter da propriedade antiga para gravar e ler do DateTime. Posso não ter utilizado a melhor prática mas devido o prazo (estava em processo de deploy xP ) foi a que resolveu sem problemas.

É isso ai pessoal! Espero que este artigo ajude alguém e como sempre, qualquer comentário é bem-vindo.