在C#中利用Nuget包使用SQLite數據庫和Linq to SQLite


本來是學習在VB中使用SQLite數據庫和Linq to SQLite,結果先學習到了在C#中使用SQLite數據庫和Linq to SQLite的方法,寫出來與大家共同學習。(不知道算不算不務正業)

1、建立或打開一個C#項目,如果是新建的項目則需要先保存一下,不然無法安裝Nuget包。

2、安裝Nuget的Linq to SQLite包,打開Nuget包管理器控制台:

 3、在PM>提示符后輸入安裝命令:(電腦要聯網)

Install-Package linq2db.SQLite

4、安裝成功后:

自動添加了依賴項:System.Data.SQLite、linq2db、ling2db.t4models(創建Linq to SQLite的T4模板)

在解決方案資源管理器中添加了幾項:

 5、現在就可以使用SQLite數據庫了:

using System.Data.SQLite;

 由於對C#代碼不是太熟悉,就不寫具體的連接方法了。

6、實現Linq to SQLite:

打開解決方案資源管理器中LinqTODB.Template文件夾中的CopyMe.SQLite.tt.txt文件:

顯示如下:

7、模板說明的第一步、第二部都不用管,我們直接來做第三部,在Web/app.config文件中添加數據庫連接:

打開解決方案的屬性窗口,選擇”設置“,添加一個”connectionStrings“的連接字符串,並設置值后保存:

打開Web/app.config文件,修改文件,在connectionString="Data Source=E:\Address.db3" 后添加providerName="SQLite":

整個配置文件如下:(其中E:\Address.db3應為你的SQLite數據庫文件)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="WindowsFormsApplication1.Properties.Settings.connectionStrings"
            connectionString="Data Source=E:\Address.db3" providerName="SQLite" />
    </connectionStrings>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
</configuration>

8、回到CopyMe.SQLite.tt.txt文件窗口,修改兩個位置后保存:

第一個位置是數據庫文件所在的目錄,本例應修改為“E:\”,第二個位置是SQLite數據庫的文件名,本例應為“Address.db3"。(也可以修改NamespaceName來修改為自己的命名空間)

 9、在解決方案資源管理器窗口,右擊CopyMe.SQLite.tt.txt文件重命名:"Address.tt",文件名隨便起,后面的.txt去掉,得到模板文件:

出現詢問是否執行模板文件窗口:

確定后在解決方案資源管理器窗口多出了Linq to SQLite類:

10、現在可以在你的代碼中運行Linq To SQLite了:

private void Form1_Load(object sender, EventArgs e)
        {
            var db=new DataModel.addressDB;
            var temp=
                from c in db.AddressDistricts 
                select c;
            foreach (var c in temp)
                    Console.WriteLine(c.DistrictName );

        }

 

 

 

 

 

悲劇啊,vb中什么時候能實現啊。

題后話:Nuget的Linq TO SQLite包十分的強大,不僅實現了Linq對SQLite數據庫的支持,同時還實現了Linq 對Access、DB2、Firebird、Oracle等11種數據庫的支持。

 

 

 

 

 

 

 

 

 


免責聲明!

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



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