Entity Framework Core Data Annotations Kullanımı Bölüm 1

Bu derste EF Core ile database tarafında veritabanına ilişkin kurallar ve genel tanımlardan bahsetmek istiyorum.

Dersin detaylı anlatımı ve kod takibi için video eğitim:

Bizim uygulama tarafında oluşturduğumuz, database katmanındaki her bir class, veritabanı tarafında bir tabloya karşılık gelir.

Bu classların içinde yer alan her bir property ise veritabanındaki o tabloya ait kolona karşılık gelir.

Örnek olarak;

Burada yer alan ve içinde Id ibaresi olan property database tarafında primary key olarak set edilir. Bir alanın primary key olarak set edilebilmesi için Id, KategoriId gibi isimlere sahip olması gerekir. Kategori_Id olmaz mesela. Ancak diyelim ki böyle bir isim verdiniz. Bu sefer mutlaka data annotations ile bu property için bir attribute tanımlamalısınız. Annotation açıklama demek, data annotation veri açıklaması anlamına gelir. Şöyle yani;

[Key]
Public int Kategori_Id {get; set; }

Böylelikle EF Core data base ile mapping yani eşleşme işlemini yaparken bu alanı primary key olarak kabul eder.

Bir başka yöntemde Fluent Api dediğimiz yöntem. Fluent Api, code first yaklaşımı ile veritabanı classlarını ve ilişkilerini yapılandırmaya yarayan bir yöntem. Bunu örneklersek;

Örneğin DbContext kısmında şöyle bir kod yazarız.

modelBuilder.Entity().HasKey( a => a.Kategori_Id);

Burada daha fazla kod var tabi ancak güçlü ve profesyonel bir yapı, Fluent Api konusuna bu seride değineceğim. Şimdi sadece data annotationslara odaklanın yeter.

Şimdi data annotationslara geçelim.

Table Data Annotations ile herhangi bir tablonun veritabanı tarafında nasıl bir isme sahip olacağını belirleyebiliriz.

13 ile herhangi bir tablodaki kolon adının veritabanı tarafında nasıl bir isme sahip olacağını belirleyebiliriz.

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GRSYKitapEvi_Model.Models
{
    [Table("tb_Kategori")]
    public class Kategori
    {
        public int KategoriId { get; set; }

        [Column("Ad")]
        public string KategoriAd { get; set; }

        //Table Data Annıtation : Veritabanı tablo adını düzenlemek için kullanılır.
        //Column Data Annotation: Veritananında yer alan o tablo içindeki kolon adını düzenlemek için kullanılır.


    }
}

Böylelikle ben üstte belirttiğim Data Annotationslar ile tablo adına ve kolon adına müdahale ederek düzenleme yapabiliyorum.

Bir sonraki derste görüşmek üzere..

Bir cevap yazın

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