使用实体框架1 (EF1)更新-在saveChanges()上

本文关键字:更新 saveChanges EF1 实体 框架 | 更新日期: 2023-09-27 18:11:07

我正在尝试增加存储在数据库中的计数器。

所以这需要我使用实体框架1 (EF1)来做和更新。

我正在做这样的事情:

  CounterTBL OrderCounter = MyRepository.CounterTableDetails("ORDERID"); 
  Booking Booking = new Booking();
  Booking.BookingAdminID = User.ID;
  Booking.BookingStatus = 2;
  OrderCounter.CounterFLD = OrderCounter.CounterFLD + 1;
  using (var ctx = new WhygoContext())
  {
      ctx.AddToBookings(Booking);
      ctx.SaveChanges();
   }

Booking插入得很好,但我期望现有的记录被更新,但没有。

搜索周围的StackOverflow和网络显示,我应该做这样的事情:ctx.CounterTBL.Attach (OrderCounter);ctx。ApplyCurrentValues("CounterTBLs",OrderCounter);

或类似的,但我的智能感知不喜欢这个,它不构建,所以我认为这些只是EF 4的一部分。

我悲哀地坚持EF 1。有办法吗?

我对这些东西很陌生,所以可能我的方式不对…

使用实体框架1 (EF1)更新-在saveChanges()上

当您插入Booking时,您正在创建上下文的新实例,并仅在该实例上调用保存更改。你的OrderCounter是从存储库加载的,我猜它使用了不同的上下文实例。您应该在两个操作之间共享上下文实例,否则您将不得不在两个上下文上调用SaveChanges

顺便说一句。如果在ASP中运行,您的代码不是很可靠。因为并发客户端可以存储相同的计数器。