zoukankan      html  css  js  c++  java
  • Context连接和断开的情况下的CRUD操作

    连续情况下的CRUD操作是一项相当容易的任务,因为默认情况下,上下文会自动跟踪实体在其生命周期中发生的更改,AutoDetectChangesEnabled为true。

    以下示例显示如何添加,更新和删除连接的场景中的实体(在上下文的范围内),而后者又将在数据库上执行insert,update和delete命令。上下文将自动检测更改并更新实体的状态。

        class Program
        {
            static void Main(string[] args)
            {
                using (var ctx = new Jason_TestEntities())
                {
                    var List = ctx.wolf_example.ToList();
                    var model = List.FirstOrDefault();
                    //修改
                    model.Name = "更新";
                    //删除
                    ctx.wolf_example.Remove(List.FirstOrDefault());
                    ctx.wolf_example.Remove(List.FirstOrDefault(x => x.Num == 20037));
                    ctx.wolf_example.Remove(List.SingleOrDefault(x=>x.Num == 20038));
                    //在数据库中执行插入,更新和删除查询
                    ctx.SaveChanges();
                }
            }
        }

    注意:如果context.Configuration.AutoDetectChangesEnabled = false,则上下文无法检测对现有实体所做的更改,因此不执行更新查询。您需要在SaveChanges()之前调用context.ChangeTracker.DetectChanges(),以便检测已编辑的实体并将其标记为“已修改”。

        class Program
        {
            static void Main(string[] args)
            {
                List<wolf_example> Listw;
                using (var ctx = new Jason_TestEntities())
                {
                    Listw = ctx.wolf_example.ToList();
                }
    
                using (var ctx1 = new Jason_TestEntities())
                {
                    var update = Listw.FirstOrDefault();
                    ctx1.wolf_example.Attach(update);
                    update.Name = "update.Name111";
                    var Entry = ctx1.Entry(update);
                    Console.WriteLine("EntityState: {0}", Entry.State);
                    Console.ReadKey();
                    ctx1.SaveChanges();
                }
            }
        }
  • 相关阅读:
    【解题报告】 洛谷P1663 山
    【解题报告】 洛谷P6733 间歇泉
    【解题报告】 洛谷P1542 包裹快递
    二分总结
    SmartSchool CC校友录V8(毕业入世版)
    Hide/Show running Console
    Calculate drive total/free/available space
    C# list installed softwares
    How to: Modify a Project System So That Projects Load in Multiple Versions of Visual Studio
    PS:WINRAR制作32位安装程序和64位安装程序选项
  • 原文地址:https://www.cnblogs.com/lgxlsm/p/7485377.html
Copyright © 2011-2022 走看看