使用实体框架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。有办法吗?
我对这些东西很陌生,所以可能我的方式不对…
当您插入Booking
时,您正在创建上下文的新实例,并仅在该实例上调用保存更改。你的OrderCounter
是从存储库加载的,我猜它使用了不同的上下文实例。您应该在两个操作之间共享上下文实例,否则您将不得不在两个上下文上调用SaveChanges
。
顺便说一句。如果在ASP中运行,您的代码不是很可靠。因为并发客户端可以存储相同的计数器。