EF6 Code First 完美支援Sqlite

來源:互聯網
上載者:User

標籤:

要想EF6 Code First 模式支援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的Code Frist了,但是同時還存在一個問題,就是程式在其他電腦上運行時無法找到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

 

至此,你就可以在VS 是用EF6來操作Sqlite 資料庫了。

 

EF6 Code First 完美支援Sqlite

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.