使用EntityFramwork[6.1]进行级联保存的时候出现异常

出现的异常:System.InvalidOperationException: Multiplicity constraint violated. The role ‘IncomeItem_CreateBy_Source‘ of the relationship ‘FamilyFinancial.Infrastructure.Repository.IncomeItem_CreateBy‘ has multiplicity 1 or 0..1

大体意思就是:违反了多重性约束,出现的属性是CreateBy;

实体设计如下图所示:

MonthIncome属于聚合根实体:

它有一个IncomeItem实体集合:

使用FluentAPI进行映射(异常解决前):

通过此配置生成的数据库的关系是没有问题的,但是执行到 context.Set<T>().Add(entity)方法时就出现上述异常;折腾许久,找到一个方法可以解决该问题,如下图:

更改了配置以后问题解决了。虽然问题解决了,但是自己还是不明白为何以前的配置却不行,如果有人知晓,请告知一二,不甚感激!

PS:还有一个小问题,从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值;

对于这个异常, 是因为数据过大引起的。只需将数据库中的datetime字段的类型改成datetime2即可解决;

但是程序中使用的DateTime.Now来进行赋值的,按理说是不应该出现这样的问题啊。而且,似乎以前在做项目的时候也有用到时间属性字段,保存也没有出问题。不知道是何原因~~~

时间: 2024-10-11 05:19:26

使用EntityFramwork[6.1]进行级联保存的时候出现异常的相关文章

hibernate级联保存,更新个人遇到的问题

在级联更新的时候,数据库中的数据是增加的,只是外键不存在,导致这样的问题产生的原因是,字表主键ID没有添加到集合中,导致Hibernate找不到子项而执行更新. hibernate级联保存,更新个人遇到的问题,布布扣,bubuko.com

【JPA 级联保存/级联删除】@OneToMany (双向) 一对多【转】

[http://blog.sina.com.cn/s/blog_625d79410101dbdd.html] 看过前两篇帮助文档 [JPA] @OneToOne 单向 和 [JPA]@OneToOne 双向 想必大家对级联操作已经充满了好奇和期待吧.那么本文将会想大家介绍JPA的级联保存操作.在此之前,我希望你能先看下这篇文档,对级联注释的各个属性有一个大概的了解.传送门:[JPA] 级联标签的解释 @Cascade 在生活中,有许多关系都是一对多的.School(学校)和 Studnet(学生

ManytOone的级联保存

(1)在many方(如user)添加指向one方(如group)的引用即在user类中增加“ private Group group;”,并生成geter和seter.(2)在geter上添加注解@ManyToOne.@JoinColumn(name="groupId")其中groupId表示生成表的外键名.(3)编写测试程序1)得到Configuration,生成SchemaExport ,在数据库中建立表(如果已存在,立即删除)2)新建Group对象和多个user对象,并设置use

级联保存

可以主表级联多表,也可以多表级联主表,原理是一样的,主要的就是xml的配置上面: cascade="save-update"要加上 主表的xml: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE hibernate-mapping PUBLIC 3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 4 "

hibernate级联保存问题

今天的遇到一个问题,搞了半天.做个记录 hibernate级联保存,设置了cascade关系,但新增时总是主表insert,从表update.以下为报错信息: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1 网上的解释是id冲突导致的,即数据库中定义了id自增,而类被插入时也被赋予了id. 解决办法:将数据库id自增去掉,重新生成类文件,选择id自增策略选择i

TFS实现需求工作项自动级联保存

目前在一个大型的金融客户软件研发平台项目实施和支持过程中,客户的质量管理团队基于该平台以及结合其它的平台数据,针对需求管理和业务过程需要拟定了一套完整的需求提出.评审.设计以及实现的流程.基于这套流程,在许多的流程细节中,需要平台尽可能化的实现规则的自动化,把流程目标的支撑元数据落实到平台自动过程中的各类中间数据中.让平台按业务规则产生各类的在没有平台支持过程中很难产生的研发过程数据,同时提高研发全周期中各项工作过程及成果的量化和可视化,及早发现周期过程中存在的问题.偏离和风险,并进行规划和设计

one2many的级联保存

(1)在one(如Group)添加一个集合(如Set<User>);(2)生成getter和setter(3)在getter上面添加注解    @ManyToOne(cascade=CascadeType.All)    @JoinColumn(name="groupId")(4)编写测试程序    User u=new User();    u.setName("张三");    Group g=new Group();    g.setName(&q

springmvc4+hibernate4+spring4注解一对多级联保存

package com.h3c.zgc.user.entity; import java.util.HashSet; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColu

hibernate---级联保存、级联删除

直接上菜: dept.hbm.xml:关键点标蓝色这部分,inverse表示放弃维护外键关系,cascade就不用说了 <hibernate-mapping package="com.cissst.it.dept.entity"> <class name="Dept" table="DEPT1"> <id name="deptno" column="DEPTNO"> &l