Entity Framework CodeFirst pluralizing sorunu

Projenizde EF Codefirst kullanıyorsanız eğer pluralizin sorunu ile karşılaşacaksınızdır. Şöyle ki mesela "Ogrenci" isimli bir tablonuz olsun. Siz bu tablonun model sınıfına  "Ogrenci" adını verin. EF veritabanında "Ogrencis" isimli bir tablo arayacaktır. Veritananındaki tablonuzun ismi "Ogrenci" olduğu için de böyle bir tablo yok diye bir hata verecektir. EF, model isimlerinin sonuna s(çoğul) takısı takarak veritabanına bakar. Bunu çözmek için aşağıdaki gibi context sınıfınıza bir kod parçası yazmanız gerekiyor. 

 

using System.Data.Entity;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using DenizArsiv.Models;
using System.Data.Entity.ModelConfiguration.Conventions;
 
 
namespace DenizArsiv.Models
{
    public class DenizArsivEntities : DbContext
    {
        public DbSet<Ogrenci> Ogrenci { getset; }
        public DbSet<Ders> Ders { getset; } 
 
 
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        }
 
    }
}

Leave a Reply

Your email address will not be published. Required fields are marked *