• 实体框架中的变更跟踪



    实体框架支持在上下文的生命周期内对加载的实体的自动更改跟踪。DbChangeTracker类为您提供了上下文跟踪的当前实体的所有信息。
    请注意,每个实体必须具有EntityKey(主键)属性才能被上下文跟踪。实体框架不会在没有EntityKey属性的概念模型中添加任何实体。
    以下代码片段显示了上下文类如何跟踪其中发生的实体和更改:

        class Program
        {
            static void Main(string[] args)
            {
                using (var ctx = new Jason_TestEntities())
                {
                    wolf_example example = ctx.wolf_example.Find(20051);
                    Console.WriteLine("Find wolf_example");
                    Console.WriteLine("{0}个实体的上下文跟踪更改", ctx.ChangeTracker.Entries().Count());
                    DisplayTrackedEntities(ctx.ChangeTracker);
                    Console.WriteLine("Find Products");
                    var Products = ctx.Products.Find(112459);
                    Console.WriteLine("{0}个实体的上下文跟踪更改", ctx.ChangeTracker.Entries().Count());
                    Products.ProductName = "修改111";
                    DisplayTrackedEntities(ctx.ChangeTracker);  
                    Console.WriteLine("Remove example");
                    Console.WriteLine("");
                    ctx.wolf_example.Remove(example);
                    DisplayTrackedEntities(ctx.ChangeTracker);
                    Console.ReadKey();
                }
            }
    
            private static void DisplayTrackedEntities(DbChangeTracker changeTracker)
            {
                Console.WriteLine("");
    
                var entries = changeTracker.Entries();
                foreach (var entry in entries)
                {
                    Console.WriteLine("Entity Name: {0}", entry.Entity.GetType().FullName);
                    Console.WriteLine("Status: {0}", entry.State);
                }
                Console.WriteLine("");
                Console.WriteLine("---------------------------------------");
            }
        }

     

  • 相关阅读:
    HashTable, HashMap,TreeMap区别
    redis的多线程
    五种I/O模型介绍
    SpringBoot的优点
    spring注解
    三种方法求解两个数组的交集
    数据库七种传播行为
    BETA 版冲刺前准备
    Python学习笔记(二)--变量和数据类型
    事后诸葛亮
  • 原文地址:https://www.cnblogs.com/lgxlsm/p/7480029.html
Copyright © 2020-2023  润新知