今天在EF core 2.2 中使用code first 保存数据时遇到一个错误:

Value cannot be null.Parameter name: frameworkNameat Microsoft.EntityFrameworkCore.Metadata.Internal.ClrCollectionAccessorFactory.Create(INavigation navigation)at Microsoft.EntityFrameworkCore.Metadata.Internal.Navigation.<>c.<get_CollectionAccessor>b__21_0(Navigation n)at Microsoft.EntityFrameworkCore.Internal.NonCapturingLazyInitializer.EnsureInitialized[TParam,TValue](TValue& target, TParam param, Func`2 valueFactory)at Microsoft.EntityFrameworkCore.Metadata.Internal.Navigation.get_CollectionAccessor()at Microsoft.EntityFrameworkCore.NavigationExtensions.GetCollectionAccessor(INavigation navigation)at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.CustomShaperCompilingExpressionVisitor.VisitExtension(Expression extensionExpression)at System.Linq.Expressions.Expression.Accept(ExpressionVisitor visitor)

看到错误说时和collection有关,

代码中的是这样定义的

private readonly List<SharedDataItem> _sharedData = new List<SharedDataItem>();public IEnumerable<SharedDataItem> SharedData => _sharedData.AsReadOnly();

当时第一反应是一对多的关系 映射有问题, 然后检查了entityconfiguration类以及add-migration / update-database步骤是否正常, 发现一切ok, 最终的数据库表结构也没问题。

后来又想了下,是不是因为我私有字段的缘故, 然后在entityconfiguration类中添加了下面的代码

builder.HasMany(p => p.SharedData).WithOne().HasForeignKey("WorkOrderId");var navigation = builder.Metadata.FindNavigation(nameof(WorkOrder.SharedData));navigation.SetPropertyAccessMode(PropertyAccessMode.Field);

结果还是有问题, 允悲。。。。

后来看到一个github的帖子: https://github.com/dotnet/efcore/issues/19535 才找到了原因:

是我的私有字段定义readonly了。 删除即可。

最终的定义是:

private readonly List<SharedDataItem> _sharedData = new List<SharedDataItem>();public IEnumerable<SharedDataItem> SharedData => _sharedData.AsReadOnly();

再次运行各种save操作都ok了。 因为这个还导致了我的电脑各种蓝屏。

EFcore 报错:Value cannot be null. Parameter name: frameworkName相关推荐

  1. activiti报错ProcessEngines.getDefaultProcessEngine()为null

    activiti报错ProcessEngines.getDefaultProcessEngine()为null 文件名错误,默认加载classpath下面的activiti.cfg.xml,而不是ac ...

  2. 关于报错connection holder is null

    关于报错connection holder is null 在练习使用jsp过程中 package com.cjh.dao.impl;import com.cjh.pojo.User; import ...

  3. 解决win10下 git闪退的问题(或者使用git命令报错fatal: open /dev/null or dup failed)

    解决win10下 git闪退的问题(或者使用git命令报错fatal: open /dev/null or dup failed) 本人在win10下安装git完成后,打开闪退,在"运行&q ...

  4. Flask报错:sqlite3.IntegrityError: NOT NULL constraint failed: step. date

    Flask报错:sqlite3.IntegrityError: NOT NULL constraint failed: step. date 报错如图 解决方法 报错如图 解决方法 开始: db=co ...

  5. 报错笔记:cannot convert parameter 1 from 'char [1024]' to 'unsigned char *'

    第一段:数组的类型是char,因此函数在引用const char 型的指针的时候,必须用char类型数组的首地址.如果是byte类型的指针的首地址,则会报cannot convert paramete ...

  6. es报错:request contains unrecognized parameter [ignore_throttled]

    问题描述 在使用 Springboot 整合 ES 的时候,使用 Springboot 时,使用的是 Springboot data 提供的工具,具体依赖如下: <dependency>& ...

  7. spark报错 java.lang.NullPointerException: Null value appeared in non-nullable field:top level Product

    报错内容 java.lang.NullPointerException: Null value appeared in non-nullable field: top level Product in ...

  8. 命令消费kafka报错(id: -1 rack: null) disconnected

    CDP 717环境使用kafka-console-consumer 命令消费kafka报错如下 23/03/28 09:19:07 WARN clients.NetworkClient: [Consu ...

  9. Mybatis报错All elements are null

    控制台报错:your MySQL server version for the right syntax to use near '' at line 1 原因:数据库字段和实体类字段不一致 数据库里 ...

最新文章

  1. 类的成员包含 java_Java 面向对象(十五)类的成员 之 内部类
  2. Oracle学习笔记整理手册
  3. 【Android Gradle 插件】Module 目录下 build.gradle 配置文件 ( plugins 闭包代码块中引入插件 | PluginAware#apply 方法引入插件 )
  4. Protocol Buffer Java应用实例
  5. TensorFlow莫烦 placehoder (三)
  6. cocos2d-x JS 重力感应监听事件
  7. PHP中的$_SERVER['PATH_INFO']
  8. distinct使SQL查询除去重复的字段
  9. Native层和so接口和Java层
  10. 基于WF的意见征集6(浅析)
  11. 一个对于小数四舍五入的算法C语言版
  12. S3VM和TSVM的不同
  13. 机器学习岗面试准备提纲笔记
  14. 4x4矩阵键盘工作原理及扫描程序_单片机学习:单片机独立按键和矩阵键盘概念及原理...
  15. MATLAB绘制地图超详细教程
  16. Centos系统新建文本文档.txt
  17. 深圳绘制SVG地图数据
  18. 按键精灵抓取不到的问题
  19. Linux中有关文件的命令总结(查看、编辑、压缩、配置)
  20. nodejs+vue+elementui图书在线阅读网站系统express

热门文章

  1. C语言之函数必备练习题
  2. 即时通讯中添加好友相关专利初探
  3. Improving Monocular Depth Estimation by Leveraging Structural Awareness and Complementary Datasets
  4. 树莓派--连接蓝牙耳机
  5. 企业微信公众号自定义消息模板
  6. Redis 主从配置密码以及哨兵
  7. MySQL日志管理、备份
  8. 双十二即将到来 小程序商家究竟应该如何抓住机会?
  9. SSD优化案例:读策略优化和中断多核绑定
  10. Qt Linux系统使用QBreakpad实战