none
EF4 modo code-first com sqlite RRS feed

  • Pergunta

  • Galera!

    Desenvolvi uma aplicação web com banco de dados sql server , utilizando entity framework 4.1 modo code-first, porém agora farei está aplicação em modo offline(desktop) e me pediram para usar o Banco SQLite  e ai começou meus problemas...

     

    <

     

     

    startup useLegacyV2RuntimeActivationPolicy="true">

    <

     

     

    supportedRuntime version="v4.0" />

    </

     

     

    startup>

    <

     

     

    runtime>

    <

     

     

    generatePublisherEvidence enabled="false" />

    </

     

     

    runtime>

    <

     

     

    system.data>

    <

     

     

    DbProviderFactories>

    <

     

     

    remove invariant="System.Data.SQLite"/>

    <

     

     

    add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />

    </

     

     

    DbProviderFactories>

    </

     

     

    system.data>

    <

     

     

    connectionStrings>

    <

     

     

    add name="ConnectionStringQCartorioNet" connectionString="Data Source=D:\CodeFirst.db;Version=3;New=True;" providerName="System.Data.SQLite" />

    </

     

     

    connectionStrings>

    

    

     

    

    porém rodando o meu teste , ele não consegue rodar , a conexão não cosnegue ser aberta e dá apenas o seguinte erro :

    An error occurred while updating the entries. See the inner exception for details.

    alguém por acaso ja cosneguiu trabalhar com sqlite utilizando o EF4 modo code-first?

    agradeço a atenção desde já.


    Luana - Programadora Junior
    quinta-feira, 3 de novembro de 2011 17:59

Respostas

  • Luana, eu baixei o provider que você está usando e tentei criar um banco de dados normal utilizando o Code First, obtive a mesma mensagem que você, se você olhar dentro de todos os inners exceptions retornado verá que ele irá dizer que a tabela não existe dentro do banco.

    Estou presumindo que você está mandando criar seu banco de dados com o comando CreateIfNotExists correto ? se sim, troque para Create, você verá que logo será disparado um erro informando que este provider não consegue criar um banco de dados. é uma lmitação desta versão para o sqlite.

    o DevArts, por sua vez, diz na documentação que suporta o Code First:

    http://www.devart.com/blogs/dotconnect/index.php/entity-framework-code-first-support-for-oracle-mysql-postgresql-and-sqlite.html

    porém, eu não tive como testar, ainda.

    Agora, se você vai fazer uma aplicação local, por que não usa SGBDs maiores, como SQL Server Express, MySQL, PostGreSQL ? 


    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Twitter @Olavooneto
    Se for útil marque como resposta e faça um Developer feliz :)
    sexta-feira, 4 de novembro de 2011 19:55

Todas as Respostas