Menggunakan SQLite dalam aplikasi Console dengan Entity Framework

Using SQLite in Console application with Entity Framework


Intro

Membina aplikasi Console yang boleh berhubung dengan pangkalan data SQLite dengan menggunakan Entity Framework.


Aplikasi yang sudah di Install:
Persediaan
  • Muat turun fail [Sample.db] dan simpan kedalam [D:\Databases\Sample.db]

Kandungan ringkas langkah-langkah yang akan dilakukan


Langkah 1: Bina projek baru


Dari Visual Studio pilih [New > Project > Console App]. Namakan projek sebagai [ConsoleSQLite]


Langkah 2: Install Nuget Package


Tools > Nuget Package Manager > Manage Nuget Packages for Solution


Pada tab [Browse] buat carian dengan kata kunci [sqlite].
Pakej yang perlu di-install ialah:
  1. System.Data.SQLite
  2. System.Data.SQLite.EF6
Pada panel sebelah kiri, pilih [System.Data.SQLite]. Pada panel sebelah kanan, tick pada [ConsoleSQLite] dan tekan butang [Install]. Jika ada apa-apa prompt, hanya tekan butang [OK]

Lakukan yang sama pada [System.Data.SQLite.EF6]

Langkah 3: Masukkan Entity Data Model

Pada Solution Explorer, buat folder baru bernana [Entities]. Kemudian klik-kanan pada folder tersebut dan pilih [Add > New Item...]


Pilih [ADO.NET Entity Data Model], namakan ia sebagai [Model1] dan tekan butang [Add]


Pilih [EF Designer from database] dan klik [Next] 

Tekan butan [New Connection], tekan butang [Change]. Pilih [SQLite Provider] dan tekan [OK].

Pada ruangan [Data Source] masukkan path pangkalan data [D:\Databases\Sample.db] yang dimuat turun tadi 

Tick pada [Tables] dan namakan Model Namespace sebagai [mainModel]. Dan tekan butang [Finish]


Langkah 4: Konfigurasi App.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework" requirePermission="false" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>
  <entityFramework>
    <providers>
      <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.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" />
      <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="mainEntities" connectionString="metadata=res://*/Entities.Model1.csdl|res://*/Entities.Model1.ssdl|res://*/Entities.Model1.msl;provider=System.Data.SQLite.EF6;provider connection string=&quot;data source=D:\Databases\sample.db&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

Buka fail [App.config], padam segalanya. Copy dan Paste kod diatas kedalam [App.config] tersebut dan save.


Langkah 5: Masukkan kod untuk membaca dari pangkalan data

Module Module1

    Sub Main()
        Using db As New mainEntities
            Dim s As String = (From t In db.table1 Where t.id = 1 Select t.Desc).FirstOrDefault
            Console.WriteLine(s)
        End Using

        Console.ReadLine()
    End Sub

End Module

Buka fail [Module1.vb], padam segalanya. Copy dan Paste kod diatas kedalam [Module1.vb] tersebut dan save.


Langkah 6: Ujilari

Tekan butang [F5] pada papan kekunci anda untuk ujilari. Jika keluar satu aplikasi Console dan memaparkan mesej "Successfully retrieve data from SQLite database." maka projek ini telah berjaya.



sumber kod penuh boleh di muat turun disini ConsoleSQLite.zip

Ulasan