首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏喵叔's 专栏

    RavenDB起步--客户端API(三)

    instance session.Delete("ToDoTasks/1-A"); // delete by ID 这里咬住,Delete 方法并不会删除文档,只是将文档在会话中标记为在已删除,只有在调用 SaveChanges 我们修改或者删除文档后,同样也需要调用SaveChanges 方法来更新 RavenDB,而且利用 Query 查询出来的文档在会话中也只有一个实例,不管你查询了多少次。 person = new Person { Name = "Oscar Arava" }; session.Store(person); 同样,与 Delete 方法一样,只有在调用 SaveChanges SaveChanges() SaveChanges 方法的作用是检查所有删除和更改的会话状态,然后将这些作为一个事务发送到服务器,因此这就保证了不会因为中途产生异常而部分保存失败。 调用 SaveChanges 方法时,将检查数据库中加载的实体和当前的实体是否有变动。如果有变动,那么该实体将被保存到数据库中。

    1.1K60编辑于 2022-01-29
  • 来自专栏全栈程序员必看

    MVC3和MVC4中CRUD操作

    ModelState.IsValid) //后台的验证信息 { db.CarModel.AddObject(car); db.SaveChanges db.CarModel.Attach(model); UpdateModel(model); db.SaveChanges = new Model.HotelModelContainer(); db.Customer.Add(entity); int count = db.SaveChanges null) { db.Customer.Remove(cus); } int count = db.SaveChanges true; db.Entry(entity).State = EntityState.Modified; int count = db.SaveChanges

    85320编辑于 2022-01-24
  • 来自专栏历史专栏

    【愚公系列】2023年09月 .NET/C#知识点-EF配置软删除

    使用SaveChangesInterceptor需要实现DbContextInterceptor类中的BeforeSaveChanges和AfterSaveChanges方法,分别在执行SaveChanges BlogContext>() .UseSqlServer(connectionString) .AddInterceptors(new TimestampInterceptor()); 这样,当SaveChanges context.Database.EnsureCreated(); context.TestEntities.IgnoreQueryFilters().ExecuteDelete(); context.SaveChanges test data context.TestEntities.Add(new SoftDeleteEntity() { Id = 1, Name = "test" }); context.SaveChanges 1); ArgumentNullException.ThrowIfNull(testEntity); context.TestEntities.Remove(testEntity); context.SaveChanges

    23000编辑于 2025-05-31
  • 来自专栏跟着阿笨一起玩NET

    【C#】Entity Framework 增删改查和事务操作

    Gender = "male" }; db.User.Add(user); db.SaveChanges //方法二:把当前实体的状态改为删除 //db.Entry(user).State = EntityState.Deleted; db.SaveChanges //把当前实体的状态改为Modified db.Entry(user).State = EntityState.Modified; db.SaveChanges setEntry.SetModifiedProperty("Name"); setEntry.SetModifiedProperty("Age"); db.SaveChanges Gender = "male" }; db.User.Add(user1); db.SaveChanges

    1.6K10发布于 2018-09-19
  • 来自专栏.Net Core技术分享

    EF Core 基础知识

    .)); } 自动重试与事物 对于执行自动重试策略来说,每一次调用context.SaveChanges()方法将会当做一个重试单元。 如果你的事物中有多个SaveChanges操作,配置的自动重试策略将会抛出异常,解决方法是使用委托来手动调用执行策略。 context.Blogs.Add(new Blog {Url = "http://blogs.msdn.com/dotnet"}); context.SaveChanges (); context1.SaveChanges(); transaction.Complete(); } strategy.ExecuteInTransaction(db, operation: context => { context.SaveChanges

    1K20发布于 2019-09-23
  • 来自专栏喵叔's 专栏

    Entity Framework 实体状态

    "张三", Age = 12 } db.User.Attach(user); db.Entry(user).State = EntityState.Unchanged; db.SaveChanges 标记为 Added 状态时,表明尸体上下文被追踪但是不存在于数据库中,当我们调用 SaveChanges 方法时数据将保存进数据库。 = new User() { Name = "张三" Age = 12 } db.Entry(user).State = EntityState.Added; db.SaveChanges (); } 三、Deleted 如果需要将实体从数据库中删除,可以使用 Deleted 状态,当调用 SaveChanges 方法时数据将会从数据库中删除。 (); } 四、Modified 当我们修改数据时,需要用到 Modified 状态,当调用 SaveChanges 方法时数据将会修改数据库中的数据。

    1.2K10发布于 2020-09-08
  • 来自专栏喵叔's 专栏

    Entity Framework 并发冲突解决方案

    ef.Users.FirstOrDefault(p => p.Id == userId); user1.Name = "李四"; db.SaveChanges (); user2.Name = "王五"; ef.SaveChanges(); } } ef.Users.FirstOrDefault(p => p.Id == userId); user1.Name = "李四"; db.SaveChanges 函数来处理异常并正确解决冲突,最后在调用 SaveChanges 方法重试提交数据。 捕获并发异常,其实我们也可以自定义 SaveChanges 的扩展方法来处理并发异常。

    1.1K20发布于 2020-09-08
  • 来自专栏Vue技术实践

    asp.net mvc 简单项目框架的搭建过程(一)对Bll层和Dal层进行充分解耦

    下面要说一下 上下文的 context.SaveChanges()了。 我们应该都知道的,如果我们操作上下文对数据库进行了 增、删、改的操作,那么操作结束后需要有一个 context.SaveChanges()的操作,用来把对实体的修改保存到数据库中。 这里呀,我们明明可以只交互一次就搞定的呀,怎么做呢,我们可以在把SaveChanges()的操作从UserDal中迁移到UserService中的呀,在UserDal中的每个方法先不写context.SaveChanges () 13 { 14 return DbContextFactory.GetCurrentDbContext().SaveChanges(); 15 当然,不要忘记回到Dal层,把原来代码中的SaveChanges操作去掉:去掉后代码如下: 1 public class BaseDal<T> where T : class , new() 2

    1.3K20发布于 2019-09-11
  • 来自专栏c#开发者

    make Entity Framework revert empty strings to null!

    public override int SaveChanges(SaveOptions options)         {             foreach (EntityObject entity System.Reflection.BindingFlags.Instance).SetValue(entity, null);                 }             }             return base.SaveChanges

    86060发布于 2018-04-12
  • 来自专栏不做码农的开发者

    【asp.net core 系列】9 实战之 UnitOfWork以及自定义代码生成

    SaveChanges的外移 在之前介绍EF Core的时候,我们提到过使用EF需要在每次使用之后,调用一次SaveChanges将数据提交给数据库。 在实际开发中,我们不能添加一条数据或者做一次修改就调用一次SaveChanges,这完全不现实。 因为每次调用SaveChanges是EF向数据库提交变更的时候,所以EF推荐的是每次执行完用户的请求之后统一提交数据给数据库。 这样就会造成一个问题,可能也不是问题:我们需要一个接口来管理EF 的SaveChanges操作。 我的建议是创建一个ActionFilter,针对所有的控制器进行SaveChanges进行处理。

    79910发布于 2020-06-17
  • 来自专栏Kiba518

    【我们一起写框架】领域驱动设计的CodeFirst框架(一)—序篇

    = context; } return context; } } public int SaveChanges throw dbEx; } catch (Exception ex) { Logger.Info("SaveChanges ex; } } while (saveFailed); return i; } } 这里我们主要定义一个属性Database和一个方法SaveChanges SaveChanges就是调用Database的SaveChanges方法来保存数据的修改,当然,我们对该方法进行了一些封装,让他更饱满一些。 repo = new Kiba_UserRepo(); repo.Add(new Kiba_User() { UserName = "kiba518" }); repo.SaveChanges

    75730发布于 2018-12-21
  • 来自专栏Vue技术实践

    EF操作数据库的步骤和一些简单操作语句

    UserInfo user = new UserInfo(); user.userName = "BBB"; user.passWord = "23456"; db.UserInfo.Add(user); db.SaveChanges (); 需要注意的是,在执行完添加操作之后,需要执行 db.SaveChanges() 操作, 这句话的意思是,把我们修改的内容更新到数据库中。 user.passWord = "1234567"; 然后执行修改操作: db.Entry(user).State = EntityState.Modified; 最后将修改保存到数据库中 db.SaveChanges user.userId = 3; user.userName = "DDD"; db.Entry(user ).Property(u => u.userName).IsModified = true; db.SaveChanges UserInfo(); user.userId = 3; db.Entry<UserInfo>(user).State = System.Data.Entity.EntityState.Deleted; db.SaveChanges

    1.5K20发布于 2019-09-11
  • 来自专栏圣杰的专栏

    UnitOfWork知多少

    当调用SaveChanges时,所有的更改将通过事务一次性提交到数据库。 同时,我们注意到Insert、Update、Delete方法都显式的调用了SaveChanges方法。 至此,我们完成了从实体到聚合再到仓储的定义和实现,万事俱备,只欠Uow。 4.5. 但这似乎引入了另外一个问题,因为仓储是管理单一聚合的,每次做增删改时都显式的提交了更改(调用了SaveChanges),在处理多个聚合时,就无法利用DbContext进行批量提交了。那该如何是好? 我们抽离SaveChanges方法,定义IUnitOfWork接口。 中Insert、Update、Delete方法中的显式保存调用_dbContext.SaveChanges();。

    2.8K81发布于 2019-09-12
  • 来自专栏GuZhenYin

    自己封装了一个EF的上下文类.,分享一下,顺便求大神指点

    m) { try { Model.Add(m); Entities.SaveChanges { try { Model.AddRange(m); Entities.SaveChanges ) { try { Model.Remove(t); Entities.SaveChanges try { Model.RemoveRange(m); return Entities.SaveChanges model = Entities.Set<TM>(); model.RemoveRange(tmMs); return Entities.SaveChanges

    1.3K60发布于 2018-01-04
  • 来自专栏GreenLeaves

    EF简介

    list).State = EntityState.Added; 也可以这样写 //forth step:告诉上下文,执行保存操作 dbContext.SaveChanges dbContext.Entry(list).State = EntityState.Modified; //将当前实体标记为修改 dbContext.SaveChanges list).State = EntityState.Added; 也可以这样写 //forth step:告诉上下文,执行保存操作 dbContext.SaveChanges dbContext.Entry(list1).State = EntityState.Modified; //将当前实体标记为修改 dbContext.SaveChanges 3、当我们在操作完数据库对应的表示表实体后,执行dbContext.SaveChanges()后,编译器报一个实体或多个实体验证失败!

    1.9K80发布于 2018-01-24
  • 来自专栏技术博客

    Entity Framework 简单增删改操作

    }; db.Entry(jeffrey).State = EntityState.Added; db.SaveChanges => m.PersonId == 4).FirstOrDefault(); db.Persons.Remove(person); db.SaveChanges .FirstOrDefault(); db.Entry(person).State = EntityState.Deleted; db.SaveChanges m.PersonId == 3).FirstOrDefault(); person.PersonName="UpdateNewName"; db.SaveChanges

    1.1K31发布于 2018-09-11
  • 来自专栏.Net Core技术分享

    02-EF Core笔记之保存数据

    EF Core通过ChangeTracker跟踪需要写入数据库的更改,当需要保存数据时,调用DbContext的SaveChanges方法完成保存。 // remove var lastBlog = context.Blogs.Last(); context.Blogs.Remove(lastBlog); context.SaveChanges (); } 关联数据 在EF Core中,除了独立的模型外,还有与模型关联的数据,这部分数据通过独立模型添加到模型中,在SaveChanges时将会持久化到数据库中。 默认情况下,每次SaveChanges方法的所保存的所有更改都将在一个事务中,要么全部保存成功,要么全部保存失败。此种情况已能满足大多数应用的需要。 工作原理:每当在 SaveChanges 期间执行更新或删除操作时,会将数据库上的并发令牌值与通过 EF Core 读取的原始值进行比较。如果一致则可以完成操作,如果不一致,则终止事务。

    2.3K40发布于 2019-09-23
  • 来自专栏数据处理与编程实践

    VBA: 打开Excel文件的两种方式(GetObject函数和Workbooks.Open方法)

    expression.Close (SaveChanges, FileName, RouteWorkbook) 代码示例: Option Explicit Option Base 1 Sub test wb.Close SaveChanges:=True MsgBox "Done!" End Sub 打开一份Excel文件,编辑结束后,保存内容并关闭。 ' 获取内容 content = wb.Sheets(1).Range("A1").Value2 MsgBox content wb.Close SaveChanges 2)在wb.Close SaveChanges:=True之前添加一句代码,Application.Windows(wb.name).Visible = True。 wb.Sheets(1).Range("A2").Value2 = "No 2" Application.Windows(wb.Name).Visible = True wb.Close SaveChanges

    14.8K11编辑于 2024-01-22
  • 来自专栏技术博客

    Entity Framework Repository模式

    }; db.Entry(jeffrey).State = EntityState.Added; db.SaveChanges => m.PersonId == 4).FirstOrDefault(); db.Persons.Remove(person); db.SaveChanges => m.PersonId == 4).FirstOrDefault(); db.Persons.Remove(person); db.SaveChanges public int Insert(TEntity entity) { Entities.Add(entity); return EF.SaveChanges entity) { EF.Entry(entity).State = EntityState.Modified; return EF.SaveChanges

    1.4K10发布于 2018-09-11
  • 来自专栏小辰的技术分享

    EntityFramework系列:MySql的RowVersion

    在EF中采用IsConcurrencyToken配置后RowVersion即自动用于where子句中用于比较Row Version,通过重写SaveChanges方法在每次添加和更新时设置RowVersion Database.SetInitializer(new MySqlDbInitializer()); } 3.手动对RowVersion赋值 public override int SaveChanges System.Text.Encoding.UTF8.GetBytes(Guid.NewGuid().ToString()); } } return base.SaveChanges Set<Customer>().FirstOrDefault(); customer2.PhoneNumber = "t2"; db2.SaveChanges (); } db1.SaveChanges(); } 7.查看测试结果: ?

    1.5K10发布于 2020-05-04
领券