Sqlite EFCore CodeFirst Bağlantısı

Posted by

Merhaba Arkadaşlar, bu yazımda sizlere EFCORE CodeFirst ile SQLite Veritabanı bağlantısı nasıl sağlanır ondan bahsedeceğim.

EFCore birçok veritabanını desteklemektedir. Bunlardan birisi de SQLite veritabanı. SQLite veritabanı fiziksel olarak makinemizde bulunan ve küçük bir veri tabanıdır. Şimdi gelelim SQLite için DataContext dosyamızı oluşturmaya.

Projemizi Oluşturuyoruz. Projemizi .Net Core 5.0 ile oluşturuyorum.

Projemizi oluşturduktan sonra öncelikle gerekli paketlerimizi Nuget Package Manager üzerinden yüklememiz gerekiyor.

Yükleyeceğimiz Paketler:

  • Microsoft.EntityFrameworkCore
  • Microsoft.EntityFrameworkCore.Sqlite
  • Microsoft.EntityFrameworkCore.Tools

EntityFrameworkCore paketi EntityFramework’ü kullanabilmemiz için gerekiyor. EntityFrameworkCore.Sqlite paketi SqLite veritabanını kullanabilmemiz için gerekiyor. EntityFrameworkCore.Tools paketi de Package Manager Console üzerinden komutlarımızı çalıştırmamız için gerekiyor.

Paketlerimizi yükledikten sonra DataContext class’ımızı oluşturuyoruz.

public class AppDbContext : DbContext
{
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlite(@"Data Source=D:\SQLiteDb\EFCoreSqliteSample.db");
        }

        public DbSet<Book> Books { get; set; }
}

Yukarıdaki gibi Context Class’ımızı oluşturuyoruz ve SQLite dosyamızın nerede oluşturulacağını, nereye konumlanacağını belirtiyoruz.

Oluşturduktan sonra da Package Manager Console üzerinden gerekli komutlarımızı yazıyoruz.

Öncelikle add-migration komutunu kullanıyoruz ve bize bir isim soruyor. Bu ismimizi de giriyoruz. İlk oluşturacağımız için ben burada Initial ismini belirtiyorum. Daha sonrasında bu dosyamız oluşturulduktan sonra update-database komutunu kullanarak veritabanımızı oluşturuyoruz.

İlgili yolumuzu kontrol ettiğimizde de veritabanımızın oluşturulduğunu ve tablomuzun da oluşturulduğunu göreceğiz.

Umarım faydalı olur.

Bir sonraki yazıda görüşmek üzere…

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir