EF6 完美支持Sqlite


要想EF6  模式支持Sqlite 得有一下幾步:

一、需要安裝 sqlite-netFx451-setup-bundle-x86-2013-1.0.92.0.exe 來讓VS添加Ado.net 時有sqlite可選

   1) 自己去 http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki 下載對應.net 版本的安裝文件(*注意下載文件名帶bundle,這個才會對vs進行插件支持

   2)安裝

要選擇全部安裝

 

勾上下面兩個復選框,這樣才會對VS 進行支持

然后一直下一步... ...

這個界面會停留比較久,不過不用管它,更不要手動關閉它,這是注冊vs 插件

當你看到這個的時候,你可以打開VS 進行Sqlite 的添加了

3)Vs 添加實體模型

你會看到這個,然后就可以愉快的和Sqlite 玩耍了

 

二、EF6支持

第一步完成后就可以程序就可以用EF了,但是同時還存在一個問題,就是程序在其他電腦上運行時無法找到System.Data.Sqlite 的程序支持,除非把第一步的重復一遍。

Nuget 中的 System.Data.Sqlite 包就能解決上述問題。

1) 安裝Nuget 包

在Nuget 管理界面 聯機搜索 sqlite ,添加第一個,另外三個會自己添加。

也可以在Nuget 控制台輸入命令:Install-Package System.Data.Sqlite

2)修改config

 

紅線中的是要自己手動添加的,代碼如下

 

<entityFramework>
  <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
  <providers>
    <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    <provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
    <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
  </providers>
</entityFramework>
<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" />

    <remove invariant="System.Data.SQLite.EF6" />
    <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory,   System.Data.SQLite.EF6" />
  </DbProviderFactories>
</system.data>

 

PS:實體模型添加Sqlite 時只有5.0框架可選,也就意味着會先添加EF5,所以在添加System.Data.Sqlite 包前要先卸載EF5

 

至此,你就可以用EF6來操作Sqlite 數據庫了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM