您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

IEntityChangeTracker的多个实例不能引用实体对象。在实体框架4.1中向实体添加相关对象时

IEntityChangeTracker的多个实例不能引用实体对象。在实体框架4.1中向实体添加相关对象时

因为这两行…

EmployeeService es = new EmployeeService();
CityService cs = new CityService();

…不要在构造函数中使用参数,我想您在类中创建了上下文。当您加载city1

Payroll.Entities.City city1 = cs.SelectCity(...);

…您将附加city1到中的上下文CityService。稍后,您将添加city1对新内容的引用,Employeee1并在中添加对上下文的e1 引用city1EmployeeService。结果,您已city1附加了异常所抱怨的两个不同的上下文。

您可以通过在服务类之外创建上下文并在两个服务中注入和使用它来解决此问题:

EmployeeService es = new EmployeeService(context);
CityService cs = new CityService(context); // same context instance

您的服务类看起来有点像存储库,它们仅负责单个实体类型。在这种情况下,当您为服务使用单独的上下文时,一旦涉及实体之间的关系,您总是会遇到麻烦。

您还可以创建一个服务,该服务负责一组紧密相关的实体,例如一个EmployeeCityService(具有单个上下文),并将方法中的整个操作委派Button1_Click给该服务的方法

其他 2022/1/1 18:14:51 有473人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶