Bir önceki dersimizde üye takibine ait projeyi oluşturup basit bir tasarımı projeye dahil ettik. Bu dersimizde üye bilgilerini saklamak için sqlserver işlemlerini gerçekleştireceğiz. Biz uzak sunucu için somee.com sitesinden yararlanacağız. Öncelikle siteye üye olmalısınız.
Ben siteye girdim. İsmi uyelerweb olan veri tabanı dosyasını oluşturdum. Uzak sunucularda veri tabanı bağlantısı için connection string tanımını oluşturmamız gerekir. Bu tanımlama sayesinde veri tabanına bağlantı sağlayacağız. Benim oluşturduğum tanım satırı aşağıdaki gibidir.
workstation id=muhasebe.mssql.somee.com;packet size=4096;user id=atml_SQLLogin_1;pwd=4amtopvujx;data source=muhasebe.mssql.somee.com;persist security info=False;initial catalog=muhasebe;TrustServerCertificate=True
Projeye geri dönelim. Veri tabanında gerekli bilgilerin saklanması için tablolardan yararlanılır. Öncelikle veri tabanı için gerekli kütüphaneleri projeye yükleyelim. Bunun için Manage Nuget Packages paketini kullanabiliriz. Proje isminin üzerine gelelim ve farenin sağ tuşuna basalım. Ekrana gelen içerik menüsünden Manage Nuget Packages komutunu çalıştrıalım. Gelen sayfada Browse sekmesini açalım. Metin kutusuna entity tools yazalım. Microsoft.EntityFrameworkCore.Tools kütüphanesini kuralım. Bu kütüphane ile birlikte Design kütüphanesi de kurulacaktır. Metin kutusuna entity sqlserver yazalım. Microsoft.EntityFrameWorkCore.SqlServer kütüphanesini kuralım. Böylece veri tabanı için gerekli kütüphaneleri kurmuş olduk.
Tablo ile saklayacağımız bilgilerin sütun başlıklarının belirlendiği modelimizi oluşturalım. Ben bunun Models klasöründe User isminde bir class dosyası oluşturdum. İçeriği aşağıdaki gibi olacaktır.
using System.ComponentModel.DataAnnotations;
namespace UserIslemleriWeb.Models
{
public class User
{
[Key]
public int Kodu { get; set; }
[StringLength(25)]
[Required]
public string? Adi { get; set; }
[StringLength(25)]
[Required]
public string? Soyadi { get; set; }
[StringLength(25)]
[Required]
public string? Username { get; set; }
[StringLength(25)]
[Required]
public string? Password { get; set; }
}
}
Şimdi DbContext oluşturalım. Öncelikle Data isminde bir klasör oluşturalım. Bu klasör altında AppDbContext isminde bir class oluşturalım. İçeriği aşağıdaki gibi olacaktır.
using Microsoft.EntityFrameworkCore;
using UserIslemleriWeb.Models;
namespace UserIslemleriWeb.Data
{
public class AppDbContext : DbContext
{
public AppDbContext() { }
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("workstation id=muhasebe.mssql.somee.com;packet size=4096;user id=atml_SQLLogin_1;pwd=4amtopvujx;data source=muhasebe.mssql.somee.com;persist security info=False;initial catalog=muhasebe;TrustServerCertificate=True");
}
public DbSet<User> Users { get; set; }
}
}
Şimdi bu veri tabanını projeye dahil edelim. Bu işlemi gerçekleştirmek için program.cs dosyasında aşağıdaki gibi bir değişiklik yapılması gerekir.
using UserIslemleriWeb.Data;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
builder.Services.AddSingleton<AppDbContext>();
var app = builder.Build();
app.UseDefaultFiles();
app.UseStaticFiles();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}"
);
app.Run();
Veri tabanını web sayfasına eklemeden önce veri tabanı ve tablonun oluşturulması işlemini gerçekleştirelim. Bunun için console ekranına düşmemiz gerekir. Orada bir iki tane kod yazacağız. Tools menüsünden Nuget Package Manager açılır menüsünü seçelim. Buradan Package Manager Console diyerek komut satırına düşelim. Öncelikle oluşturduğumuz model yapısına uygun tablo işlemlerini gerçekleştirmemiz gerekir. Bu işleme migration denir. Komut satırına şunu yazalım.
Add-Migration SqlServerData
Bu komutu yazdıktan sonra projemize Migrations isminde bir klasör eklenir. Bu klasör altında veri tabanı ve tablo oluşumu için gerekli olan dosyalar otomatik olarak yüklenir. Hazırlanan bu migration yapısına göre veri tabanını oluşturmak için aşağıdaki kodu komut satırına yazalım.
Update-Database
Projeye uyelerWeb isimli veri tabanının eklendiğini görürsünüz.