在我最后一个项目中,我使用了Entity Framework 5 Code First.我完成了我的项目,但在开发过程中遇到了很多痛苦.
我试图解释我的痛苦如下:
我的数据访问逻辑层中有几个数据类,如产品,产品分类,订单,公司,制造商等…每个类都有一些其他类的参考.例如,Product实例具有ProductCategory属性.
我的数据访问对象类的Add和Update方法我将上下文中的每个属性(不同于基本类型)的状态设置为Unchanged或Modified.以下是一些dao类的更新方法的一部分:
context.Entry(entity).State = System.Data.EntityState.Modified; if (entity.Category != null) context.Entry(entity.Category).State = System.Data.EntityState.Unchanged; if (entity.Manufacturer != null) context.Entry(entity.Manufacturer).State = System.Data.EntityState.Unchanged; foreach (var specificationDeFinition in entity.SpecificationDeFinitions) { context.Entry(specificationDeFinition).State = System.Data.EntityState.Unchanged; foreach (var specificationValue in specificationDeFinition.Values) { context.Entry(specificationValue).State = System.Data.EntityState.Unchanged; } }
这个代码就是这样的.我的一些添加或更新方法是大约30行代码.我认为我做错了事情,添加或更新一个实体不应该是这么多痛苦,但是当我没有设置对象的状态时,我会收到数据库中的异常或重复条目.我真的要设置映射到数据库的每个属性的状态吗?
解决方法
原文地址:https://www.jb51.cc/csharp/93883.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。