【发布时间】:2020-12-24 08:52:40
【问题描述】:
这是基本的 winform 应用程序,没有服务或介于两者之间的任何东西。我正在使用实体框架从数据库中获取一些记录。下面的代码在一个名为 PersonRepository 的类中。
var obj = Context.Persons.Where(u=>u.Id==20);
obj.RegisterDate = obj.RegisterDate.ToMountainStandardTime();
return obj;
ToMountainStandardTime 是日期类型的扩展方法。
现在,在我拉出这条记录并显示到 UI 之后。用户在屏幕上执行一些操作,并根据要求在另一个名为“活动”的表中插入记录。用户不需要在 Person 表中保存任何内容。
做完自己的事情后,像这样
Context.Activities.Add(newActivityObject);
Context.SaveChange();
这两种方法都在同一个类中。除了在活动表中添加新对象外,它还更新所选人员类别的注册日期。 我知道原因,这个 Context 对象在 PersonRepository 类的构造函数中初始化并被该类中的所有方法使用。
我的大部分经验是通过 restful 服务使用它,我不需要太多担心这些事情,因为对于每个请求,我们都会创建新的上下文实例。
我可以通过在像这样编辑它之前从上下文中分离对象来简单地处理它
Context.Entry(obj).State = EntityState.Detached;
但是想知道是否有更好的方法来处理这个问题?
【问题讨论】:
-
您可以更改为单例上下文。
标签: c# wpf entity-framework