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
Yorum Gönder