使用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来进行赋值的,按理说是不应该出现这样的问题啊。而且,似乎以前在做项目的时候也有用到时间属性字段,保存也没有出问题。不知道是何原因~~~

转载于:https://www.cnblogs.com/xlhblogs/p/3991845.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值