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

  • 相关阅读:
    解读:MultipleOutputs类
    hadoop2对应的eclipse插件使用
    MR案例:外连接代码实现
    Navicat for MySQL下载、安装与破解
    MySQL数据库安装与配置详解
    堡垒机2
    堡垒机
    MySQL主键和外键使用及说明
    待续--mysql中key 、primary key 、unique key 与index区别
    ORM框架SQLAlchemy使用学习
  • 原文地址:https://www.cnblogs.com/xlhblogs/p/3991845.html
Copyright © 2011-2022 走看看