SQLite with EF Code First

会有一股神秘感。 提交于 2019-11-29 14:02:30

问题


After my success using SQLite with NHibernate, I am very happy to use it for testing with Entity Framework Code First.

If you have some example connections string and set up demos, that would be great and save a bit of time from my hectic day.

Thanks a lot.

EDIT:

Worth mentioning that I am getting this error during debugging when applying crud actions via the EF "data context":

Unable to determine the provider name for connection of type 'System.Data.SQLite.SQLiteConnection'.

<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" />
    </DbProviderFactories>
</system.data>


<connectionStrings>
    <add name="DataContext"
         connectionString="Data Source=:memory:;Version=3;New=True;"
         providerName="System.Data.SQLite"
     />
</connectionStrings>

Hopefully EF does integrate with SQLite in this fashion. Although the error message, alarmingly, suggests probably not.


回答1:


Code First should work just fine with any ADO.NET 3.5 level provider (these implement Entity Framework functionality).

The 4.0 capable providers also add DeleteDatabase/CreateDatabase/DatabaseExists functionality.

Code First requires no additional provider functionality beyond these.

What happens is that it looks at the type of the Connection and then tries to map that back to the provider and its provider factory so it can create everything else it needs.

It would be worth checking to make sure you have an up-to-date SQLLite provider installed in your GAC that supports the 3.5 level functionality.




回答2:


You need to use the assembly qualified name:

<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" />


来源:https://stackoverflow.com/questions/4428590/sqlite-with-ef-code-first

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!