ASP.NET Core Kitap Listeleme Projesi Ders 01

Bu projemizde temel CRUD işlemlerini gerçekleştireceğimiz bir kitap listeleme uygulaması gerçekleştirceğim arkadaşlar. Projemizde ASP.NET Core 3.1 kullanılacak ve WEB Application olacak. Dolayısı ile şimdi yeni bir proje oluşturalım.

Dersin daha detaylı işlenişini görmek için videoyu izlemenizi önermekteyim:

Entity Framework Core Paketlerinin Yüklenmesi

Şimdi bu iletişimi sağlayabilmek için yapmam gereken tabi öncelikle Entity Framework Core Paketlerinin yüklenmesi. Bunu yapabilmek için Visual Studio ortamımda projeme sağ tıklıyor ve Manage Nuget Packages diyorum.

Daha sonra orta kısımda Browse kısmında entityframeworkcore yazıyor ve aşağıdaki dört paketi yüklüyorum.

  • Microsoft.EntityFrameWorkCore
  • Microsoft.EntityFrameWorkCore.Design
  • Microsoft.EntityFrameWorkCore.SqlServer
  • Microsoft.EntityFrameWorkCore.Tools

Şimdi de bağlantı nesnemizi oluşturalım, bunun için SQL Server üzerindeki server ad bilgilerimi alıyorum. Bunu yapabilmek için SQL server ilk açıldığında çıkan pencerede server name yazan alandaki ismi kopyalayabilirsiniz.

Daha sonra projemde yer alan connection string bilgilerini tutacağım appsettings.json dosyamda kodlarımı yazıyorum:

{
  "ConnectionString": {
    "Baglanti": "Server=(localdb)\\DESKTOP-FIUL2TU\\SQLEXPRESS, Database=DBKitapListesi; TrustedConnection=True; MultipleActiveResultSets=True"
  },

  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}


Şimdi burada bağlantı nesnemiz yani connectrion string oluşturma işlemimizi gerçekleştirdik. Connection string ismi olarak Baglanti seçtim. Burada server yazan kısım benim localde yer alan msssql server kurulu adresim, Database ile bahsi geçen kısım ise projemizde veritabanımıza verdiğimiz isim. Daha sonra database ayarlarımda bağlantı durumu ve birden fazla bağlanma durumunu true olarak tanımladım. Bağlantı nesnemi oluşturma işlemim burada bitti. Bu arada burası bir JSON objesi olduğu için bağlantı nesnemin parantezini kapattıktan sonra virgül eklemeyi unutmuyorum.

Bağlantı nesnemizi oluşturduk şimdi diğer konfigurasyon ayarlarımıza geçelim. Öncelikle projemde sağ tıklıyor ve bir klasör oluşturuyorum.

Adını Models verdim. Sonra bu klasöre geliyor ve add new item diyerek yeni bir öğe ekliyorum. Bir class öğesi ekliyorum adını da KLDbContext verdim. Bu benim projemin DBContexti olacak. Kodlarımızı yazalım:

using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace KitapListesiProjesi.Models
{
    public class KLDbContext : DbContext
    {
        public KLDbContext(DbContextOptions< KLDbContext > options) : base (options)
        {

        }
    }
}

Burada DBContext sınıfından miras alma durumu mevcut ayrıca class içinde bir contsructor metot oluşturdum. Burası şimdilik bu kadar.

Buradan startup.cs’e gidelim. Kodlarımızı yazalım:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using KitapListesiProjesi.Models;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace KitapListesiProjesi
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext< KLDbContext >(options => options.UseSqlServer(Configuration.GetConnectionString("Baglanti")));
            services.AddRazorPages();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            'if' (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
            }

            app.UseStaticFiles();

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapRazorPages();
            });
        }
    }
}


Burada configureservice metodunun içinde veritabanı contextimizi ekliyoruz. Şimdilik bu kadar diyelim bir sonraki derste görüşmek üzere..

not: if önünde ve ardında tırnak yok. wp hatası nedeni ile eklenmiştir.

Bir cevap yazın

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