栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

因为这两行…

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

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

city1

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

…您将附加

city1
到中的上下文
CityService
。稍后,您将添加
city1
对新内容的引用,
Employee

e1
并在中添加对上下文的
e1
引用
city1
EmployeeService
。结果,您已
city1
附加了异常所抱怨的两个不同的上下文。

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

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

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

您还可以创建一个服务,该服务负责一组紧密相关的实体,例如一个

EmployeeCityService
(具有单个上下文),并将方法中的整个操作委派
Button1_Click
给该服务的方法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/387192.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号