EF CodeFirst TPH TPS kullanımı

Merhaba Arkadaşlar Entitiy Framewrok de Code First yaklaşımında kullandığım TPH ve TPS kullanımına ornek olarak yaptığım ornek yazılım kodlarını cereceğim. Gerekli açıklamaları sonra yazacağım..

 

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;

namespace TPH
{
    public class Program
    {
        static void Main(string[] args)
        {
            using (var context=new TPHC())
            {
                //Product product = new Product { Name = "Elma", Title = "Balık1" };
                //context.Products.Add(product);


                //Gozluk gozluk = new Gozluk { Name = "RyBan", Number = 4, Title = "Gozluk Başlık" };
                //context.Gozlukler.Add(gozluk);


                //Cerceve cerceve = new Cerceve
                //{
                //    Name = "cerceve",
                //    Title = "Cerceveler Başiıl",
                //    Index = "İndexi",
                //    CerceveNumber = 4,
                //    Number = 4,
                //    Category = new Category { Name = "İpli" }
                //};
                //context.Cerceveler.Add(cerceve);
                //context.SaveChanges();

                //var query = from b in context.Products
                //            orderby b.Name
                //            select b;

                //Gozluk gozluk1 = context.Gozlukler.FirstOrDefault(p => p.Id == 3);
                // //Hem Gozluk hemde cercevedeli gozluk ozelliklerini siler.
                //context.Gozlukler.Remove(gozluk1);
                //context.SaveChanges();


                //Console.WriteLine("All blogs in the database:");
                //foreach (var item in query)
                //{
                //    Console.WriteLine(item.Name);
                //}
            //sil();
                 #if true
            
                //BaseClassAbstract temel = new BaseClassAbstract();
                //temel.Number = 45;    
                #endif


            }

    
        }

      private static void sil()
       {
             using (var context=new TPHC())
            {

                Cerceve cerceve = context.Cerceveler.FirstOrDefault(p => p.Id == 4);
                context.Cerceveler.Remove(cerceve);
                context.SaveChanges();
             }
        }
    }
    public class Product
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Title { get; set; }
    }
    public class Gozluk:Product
    {
        public string Index { get; set; }
        public int Number { get; set; }
    }
    public class Cerceve:Gozluk
    {
        public int CerceveNumber { get; set; }
        public  virtual Category Category { get; set; }
    }
    public class Category
    {
        public int Id { get; set; }
        public string Name { get; set; }

        public virtual ICollection<Cerceve> Cerceveler {get;set;}
    }

    public abstract  class BaseClassAbstract
    {
        public int Id { get; set; }
        public int Number { get; set; }

        public BaseClassAbstract()
        {
            // TODO: Complete member initialization
        }
    }

    public class KalitsalOlan : BaseClassAbstract
    {
        public string Name { get; set; }
        public string SurName { get; set; }
    }

    public class TPHC : DbContext
    {
        public DbSet<Product> Products { get; set; }
        public DbSet<Gozluk> Gozlukler { get; set; }
        public DbSet<Cerceve> Cerceveler { get; set; }
        public DbSet<BaseClassAbstract> BaseClasAbstractlar { get; set; }
        public DbSet<KalitsalOlan> KalitsalOlanlar { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Gozluk>().ToTable("Gozlukler");
            modelBuilder.Entity<Cerceve>().ToTable("Cerceveler");
            modelBuilder.Entity<KalitsalOlan>().ToTable("KalitsalOlanlar");
            base.OnModelCreating(modelBuilder);
        }
    }

}

codeFirst.rar (2,33 mb)

 Maskot resmimiz..

The file '/Custom/Widgets/Calendar/widget.cshtml' does not exist.The file '/Custom/Widgets/Category list/widget.cshtml' does not exist.The file '/Custom/Widgets/Tag cloud/widget.cshtml' does not exist.The file '/Custom/Widgets/Page List/widget.cshtml' does not exist.The file '/Custom/Widgets/Month List/widget.cshtml' does not exist.