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