Entity Framework - veritabanında yapılan değişiklikleri izle - DbChangeTracker kullanarak- console application -



using System;
using System.Data.Entity.Infrastructure;
using System.Linq;

namespace ConsoleChangeTarcking
{
class Program
{
static void Main(string[] args)

using (var ent = new NORTHWNDEntities())

Console.WriteLine("Kargocu --> ");
var std1 = ent.Shippers.Find(17);
var sCName = std1.CompanyName;

Console.WriteLine("Değişiklikler izleniyor ({0} adet entity.), Orjinal kayıt : ( {1} )", ent.ChangeTracker.Entries().Count(), sCName);

std1.CompanyName = sCName + " - " + System.DateTime.Now.Second.ToString();

//ent.SaveChanges(); // kaydedilirse changes yok gibi gösterir, aşağıdaki void te(DegisenleriIzle)....

DegisenleriIzle(ent.ChangeTracker, "Değişen Kayıt : ( " + sCName +  " ) ");

//ent.SaveChanges(); // şimdiki gibi test değilde gerçekten kayıt istenirse burada yapılır...


}

private static void DegisenleriIzle(DbChangeTracker izleyici,string sCName)
{
Console.WriteLine("");

var entries = izleyici.Entries();
foreach (var entry in entries)
{
Console.WriteLine("Entity Adı: {0}", entry.Entity.GetType().FullName + " -- " + sCName);
Console.WriteLine("Durumu: {0}", entry.State);
}
Console.WriteLine("");
Console.WriteLine("---------------------------------------");


}
}

Yorumlar