C# Entity Framework ile SQLite Kullanımı

İbrahim     29 Ocak 2019     347     0    
Bu makalede sqlite veritabanı işlemlerini entity framework ile nasıl yaparız onu göreceğiz.

Projeye başlamadan önce sqlite nedir, sqlite hangi alanlarda kullanılır ve buna benzer detayları incelemek isterseniz "www.sqlite.org/index.html" linkine göz atabilirsiniz.

Şimdi ilk olarak veritabanı tasarlayabilmek için, "https://sqlitebrowser.org" adresinden veritabanı motorunu indirelim, kuralım ve çalıştıralım.Çalıştırdıktan sonra Okul.db adında yeni bir veritabanı oluşturalım, oluşturduğumuz veritabanını D'ye kaydedelim.Ogrenci adında bir tablo oluşturalım.İçerisine Id, Ad alanlarını ekleyelim.İşlemler bittikten sonra, üstteki menüden "Write Changes"a tıklayarak yaptığımız işlemleri veritabanına kaydedelim.

Şimdi visual studio'yu açalım.Yeni bir console uygulaması oluşturalım.Package Manager Console'yi açalım ve aşağıdaki komutu yazarak enter'a basalım.

Install-Package System.Data.SQLite

Komut gerekli işlemleri yaptıktan sonra, App.Config dosyasında bazı girişler yapacaktır.Biz bu girişleri kaldıralım.App.Config dosyası şu hale gelecektir.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>
</configuration>

Şimdi SQLiteConfiguration.cs adında bir sınıf oluşturalım.

using System.Data.Entity;
using System.Data.Entity.Core.Common;
using System.Data.SQLite;
using System.Data.SQLite.EF6;

namespace sqlite
{
    public class SQLiteConfiguration : DbConfiguration
    {
        public SQLiteConfiguration()
        {
            SetProviderFactory("System.Data.SQLite", SQLiteFactory.Instance);
            SetProviderFactory("System.Data.SQLite.EF6", SQLiteProviderFactory.Instance);
            SetProviderServices("System.Data.SQLite", (DbProviderServices)SQLiteProviderFactory.Instance.GetService(typeof(DbProviderServices)));
        }
    }
}

Şimdi veritabanında oluşturduğumuz tabloyu, burada sınıfa uygulayalım.Tablo ismi Ogrenci'idi.Burada da Ogrenci adında bir sınıf oluşturalım.

using System.ComponentModel.DataAnnotations;

namespace sqlite
{
    public class Ogrenci
    {
        [Key]
        public int Id { get; set; }

        public string Ad { get; set; }
    }
}

Şimdi DatabaseContext.cs adında bir sınıf daha oluşturalım ve DbContext'ten kalıtım alalım.Burada veritabanı bağlantı yolunu belirliyoruz.Oluşturduğumuz Ogrenci tablosu için dbset yazıyoruz.(Her bir tablo için dbset yazmamız gerekir.)

using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
using System.Data.SQLite;

namespace sqlite
{
    class DatabaseContext : DbContext
    {
        public DatabaseContext() :
            base(new SQLiteConnection()
            {
                ConnectionString = new SQLiteConnectionStringBuilder() { DataSource = "D:\\Databases\\FaturaTakip.db", ForeignKeys = true }.ConnectionString
            }, true)
        {
        }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
            base.OnModelCreating(modelBuilder);
        }

        public DbSet<Fatura> Fatura { get; set; }
    }
}

Evet buraya kadar herşey tamam ise artık Program.cs'ye geçebiliriz.

using System;
using System.Linq;

namespace sqlite
{
    class Program
    {
        static void Main(string[] args)
        {
            DatabaseContext context = new DatabaseContext();
            Ogrenci ogr = new Ogrenci()
            {
                Ad = "sd"
            };
            context.Ogrenci.Add(ogr);
            context.SaveChanges();

            var data = context.Ogrenci.ToList();
            foreach (var item in data)
            {
                Console.Write(string.Format("Ad : {0}", item.Ad, Environment.NewLine));
            }
            Console.ReadKey();
        }
    }
}

Burada bağlatımızı oluşturduk.Ogrenci adında bir nesne oluşturduk ve içerisine değer atadık.Ardından veritabanımıza ekledik.Ardından Ogrenci tablosunda bulunan verileri, veritabanımızdan çekerek ekrana yazdırdık.

Umarım faydalı olmuştur arkadaşlar.Hepinize iyi kodlamalar!

Kaynak : SQLite-with-Csharp-Net-and-Entity-Framework


Etiketler:  
sqlite-nedir
sqlite-kullanimi
entity-framework-kullanimi


Paylaş:  

Bir Cevap Yazın