LINQ 到 SQL -

2024-01-03

我正在尝试使用 LINQ 将记录插入到子表中,并且我 收到“指定的转换无效”错误,该错误与/有关 涉及的按键。堆栈跟踪是:

消息:指定的演员阵容无效。

类型:System.InvalidCastException 来源:System.Data.Linq 目标站点: 布尔值 TryCreateKeyFromValues(System.Object[], V ByRef) HelpLink: null 堆栈: at System.Data.Linq.IdentityManager.StandardIdentityManager.SingleKeyManager2.TryCreateKeyFromValues(Object[] values, V& v) at System.Data.Linq.IdentityManager.StandardIdentityManager.IdentityCache2.查找(对象[] 键值)在 System.Data.Linq.IdentityManager.StandardIdentityManager.Find(元类型 类型,Object[] keyValues)位于 System.Data.Linq.CommonDataServices.GetCachedObject(元类型 类型,Object[] keyValues)位于 System.Data.Linq.ChangeProcessor.GetOtherItem(元关联 assoc,对象实例)位于 System.Data.Linq.ChangeProcessor.BuildEdgeMaps() 在 System.Data.Linq.ChangeProcessor.SubmitChanges(冲突模式 故障模式)在 System.Data.Linq.DataContext.SubmitChanges(冲突模式 故障模式)在 System.Data.Linq.DataContext.SubmitChanges()

(.....)

以下代码引发此错误:

 ResponseDataContext db = new ResponseDataContext(m_ConnectionString);
 CodebookVersion codebookVersion = db.CodebookVersions.Single(cv => cv.VersionTag == m_CodebookVersionTag);
 ResponseCode rc = new ResponseCode()
    {
       SurveyQuestionName = "Q11",
       Code = 3,
       Description = "Yet another code"
    };
 codebookVersion.ResponseCodes.Add(rc);
 db.SubmitChanges(); //exception gets thrown here

所讨论的表两者之间具有 FK 关系。
父表的列称为“id”,是 PK,类型为:INT NOT NULL IDENTITY
子表的列称为“responseCodeTableId”,类型为:INT NOT NULL。

codebookVersion(父类)映射到表 tblResponseCodeTable
responseCode (childClass) 映射到表 tblResponseCode

如果我直接执行SQL就可以了。例如

INSERT INTO tblResponseCode 
(responseCodeTableId, surveyQuestionName, code, description)
VALUES (13683, 'Q11', 3, 'Yet another code')

对同一类的更新工作正常。例如

codebookVersion.ResponseCodes[0].Description = "BlahBlahBlah";
db.SubmitChanges(); //no exception - change is committed to db

我在 .Add() 操作之后检查了变量 rc,它确实收到了正确的 responseCodeTableId,正如我所期望的那样,因为我将其添加到该集合中。

tblResponseCodeTable's full definition:
COLUMN_NAME TYPE_NAME
id                  int identity
responseCodeTableId int
surveyQuestionName  nvarchar
code                smallint
description         nvarchar
dtCreate            smalldatetime

dtCreate 有一个默认值 GetDate()。

我能想到的唯一有用的信息是没有 SQL 曾经对数据库进行过尝试,所以 LINQ 在它之前就崩溃了 尝试(因此错误不是 SqlException)。我已经进行了分析和验证 没有尝试在数据库上执行任何语句。

当你与非 PK 领域有关系时,我已经阅读并看到了这个问题,但这不适合我的情况。

谁能帮我解释一下这种情况?我在这里错过了什么非常明显的事情?

非常感谢。
保罗·普威特


发布父表的架构。

如果你看看这里,其他一些人也遇到了你的问题。

Linq2SQL 似乎无法将某些外键映射到某些主键。一个人有一个解决方案,但我认为您已经映射到 IDENTITY 列。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LINQ 到 SQL - 的相关文章

  • LinqToSql 声明和实例化 DataContext 最佳实践?

    设置 DataContext 以便在扩展 LinqToSql 类中轻松访问方面的最佳实践是什么 例如 我的 dbml 中有一个 User 实体 我想向该类添加方法 如下所示 Partial Public Class User Public
  • 将我的值类型转换为可空等效类型

    我有一个临时报告系统 我对查询的源类型或所需字段没有编译时知识 我可以使用在运行时编写表达式树System Linq Expressions Expression工厂方法 并使用反射调用 LINQ 方法 但动态 LINQ 是一个更简单的解决
  • 领域驱动设计 (Linq to SQL) - 如何删除聚合的某些部分?

    我似乎对整个 DDD LinqToSql 业务感到有点困惑 我正在使用 POCOS 和 linq to sql 构建一个系统 并且我有聚合根的存储库 因此 例如 如果您有 Order gt OrderLine 类 那么您就有了 Order
  • 我的 DataContext 怎么错了?

    我使用 LINQ To SQL 一段时间了 我通常在解决方案中执行以下操作 在一个项目中 我创建了一个 dbml 架构 在另一个项目中 我创建了一个简单的 DataAccessLayer DAL 它了解我的第一个项目 并实例化 DataCo
  • 为什么 EF 5.0 在编译为 sql 时不支持此 EF 4.x LINQ 语法?

    我有一些代码最近从 EF 4 2 升级到 EF 5 0 实际上是 EF 4 4 因为我在 Net 4 0 上运行 我发现我必须更改查询的语法 我很好奇为什么 让我从问题开始 我有一个由客户端定期填充的事件日志表 对于每个事件日志 都会在报告
  • 当结果为空时 LINQ 返回什么

    我有一个关于 LINQ 查询的问题 通常查询返回一个IEnumerable
  • nHibernate 3 - Left Join re-Linq 解决方案

    我正在尝试使用 nHibernate 3 运行下面的 Linq 查询 var items from c in session Query
  • IQueryable 单元或集成测试

    我有一个 Web api 并且公开了一个端点 如下所示 api 假期 name name 这是 Web api 的控制器 get 方法 public IQueryable
  • 方法 X 不支持对 SQL 的转换 - 布尔值和日期时间

    有人建议如何使 LINQ to SQL 支持此功能吗 public bool IsEnabled return this Disabled this EnabledFrom HasValue this EnabledFrom lt Date
  • 多级父子排序

    我有一个物品清单 ID 名称 ParentID 1 abc 0 级别1 2 定义 1 3吉1 4 jkl 0 5米诺2 6 季度 5 7 AAA 1 8 威克斯 0 我希望列表排序为 美国广播公司 啊啊 定义 姆诺 吉 jkl 维克斯 也就
  • 如何使用自定义 DbFunction 将字符串转换为小数

    我有一个将小数 和其他类型 保存为字符串的表 我想在数据库上下文上编写一个 Linq 查询 该查询将转换为数据库转换而不是本地转换 出于性能原因 This 非工作的example 从概念上讲是我想要实现的目标 using var conte
  • 检查日期范围是否在 fullcalendar.io 显示的另一个日期范围内

    我正在实现服务器端代码来获取事件fullcalendar io https fullcalendar io 有两种情况 活动有开始日期和结束日期 活动有开始日期 并且设置为全天 Model public Class CalendarEven
  • Resharper:IEnumerable 的可能多重枚举

    我正在使用新的 Resharper 版本 6 在我的代码中的几个地方 它给一些文本加了下划线 并警告我可能存在IEnumerable 可能的多重枚举 我理解这意味着什么 并在适当的情况下采纳了建议 但在某些情况下 我不确定这实际上是一个大问
  • Linq.Select() 中的嵌套表达式方法调用

    I use Select i gt new T 每次手动点击数据库后将我的实体对象转换为 DTO 对象 以下是一些示例实体和 DTOS 用户实体 public partial class User public int Id get set
  • 基于 AST 结合使用 And Or 和 Not 表达式的 C# 表达式

    我想使用 Linq 表达式来实现一些动态功能 我需要 And Or 和 Not 表达式 我无法得到太多 我们想要检查系统中是否启用了某些功能 并据此决定是否显示菜单项 我们已经形成了 XML 格式的规则 我知道将规则转换为 AST 但我不知
  • 动态 LINQ - 与 GROUP BY / SELECT 语法作斗争

    我有一组重复的数据 我正在从多个 SQL 表 说来话长 但尽管具有相同的数据 但它们都有不同的名称 中检索到 NET DataTable 中 Point Date gt Point Value0 gt Point Value1 gt Poi
  • 在 Linq (C#) 中动态交叉连接多个不同大小的集合

    我有未知数量的存储桶 集合 并且每个存储桶都有未知数量的实体 我需要生成所有实体的笛卡尔积 这样我最终会得到一个包含实体数组的集合 并且在每个数组中 每个桶都有 1 个代表 因此 如果我有 5 个存储桶 B1 B5 并且存储桶 B1 B2
  • 在 Select 语句中调用表达式 - LINQ to Entity Framework

    我正在尝试使用我在尝试执行 select 子句时创建的现有表达式构建类 但我不确定如何将表达式附加到 Select 的表达式树 我尝试执行以下操作 var catalogs matchingCatalogs Select c gt new
  • LINQ to XML - 如何正确使用 XDocument

    现在我首先要说的是 这确实是一项任务 然而 在我遇到 Linq to XML 语法之前 我几乎已经完成了它 我有 2 个课程 曲目和 CD 现在作为作业的一部分 我创建了一张 CD 然后向其中添加了一些曲目 在搜索了大量完美解释了如何从 x
  • 处理 LINQ sum 表达式中的 null

    我正在使用 LINQ 查询来查找列的总和 并且在少数情况下该值有可能为空 我现在使用的查询是 int score dbContext domainmaps Where p gt p SchoolId schoolid Sum v gt v

随机推荐

  • GWT 中会话超时的鼠标移动

    我正在研究 GWT 在我的应用程序中 我想在 2 分钟后未执行任何操作 包括鼠标事件 时添加会话超时 我编写了一个类 其中使用了 GWT 会话对象 public static boolean ValidSession HttpSession
  • 如何将用户凭据从控制台传递到 SharePoint Online?

    我正在尝试使用控制台可执行文件中的上下文令牌连接 SharePoint 2013 Online 网站 但是 它给了我错误The remote server returned an error 403 Forbidden 这是代码片段 str
  • 为什么使用 Xamarin 的 MobileServiceClient 单点触控实现的流量未显示在 Fidder/Charles 中

    这可能与以下问题相同 使用 MonoTouch HttpClient 和 Charles 代理时的 HTTP 流量监控问题 https stackoverflow com questions 23492126 http traffic mo
  • 如何让测试资源管理器适用于 Python VS Code?

    我最近安装了 VSCode 和它的 python 扩展 一切都很顺利 但测试资源管理器不会填充测试 我已经运行了测试发现 甚至可以运行测试 但资源管理器不会填充任何信息 在上面的截图中我们可以看到 空的测试资源管理器 我的 python v
  • 在node.js和socket.io中发送数组时的错误

    我使用socket io版本0 8 4 我将我的问题归结为以下几点 我的数据看起来像这样 data prop1 data prop1 push man data prop2 data prop2 hey man 我通过以下方式将数据从服务器
  • 为 Log4j2 配置 Grails 3

    我们想使用 Log4j2 作为与 grails 3 的日志绑定 从目前我能了解到的情况来看 我们有许多使用各种记录器的从属依赖项 因此我们需要使用 SLF4J API 然后 我们需要将每个 API 重新定向到 Log4j2 绑定 而不是让
  • Kinect 编程的要求

    我希望使用 Kinect ToF 摄像头进行编程 但我不确定这样做的硬件和软件要求 我读过很多涉及这个主题的文章 书籍 但似乎存在一些不一致之处 让我有些困惑 问题 我需要购买什么 Kinect 产品才能确保拥有在计算机上使用它进行软件开发
  • 使用带有 SSL 的 ODBC (5.1) 连接 MySQL

    我们有一个客户端应用程序 通过 ODBC 连接器 服务器是托管 专用网络服务器 连接到我们的在线 MySQL 数据库 5 1 44 community log 这效果非常好 但是我无法使用 SSL 让它工作 这是我到目前为止所做的 1 My
  • 如何创建纯解决方案级 NuGet 包

    我想创建并分发一个 NuGet 包 安装后仅将整个解决方案安装到根目录packages 文件夹 引用中的包 NuGet packages config file 我已经找到了一些有关该主题的 NuGet 包格式的信息 并且根据NuGet 常
  • 将 Gradle 模块包含到 Maven 项目中

    我们有一个使用 Maven 作为构建系统的大型项目 我们决定在未来的项目中将使用 Gradle 作为更方便的工具 但我们也希望将 Gradle 用于我们的遗留项目 我认为从 Maven 迁移到 Gradle 会非常痛苦 因为 POM 文件中
  • 如何从tinyMCE禁用HTML标签

    https www dropbox com s g2nry5ifx0x9v52 2013 12 20 2011 20 26 Ingage 20Admin 20Panel png https www dropbox com s g2nry5i
  • CoreData:仅获取最后一个元素,而不是全部(iPhone)

    Welcome 我使用 Core Data 来存储数据 我需要这样一个方法 它只返回实体的最后 7 个元素 我的问题是我应该如何修改这段代码 它获取所有元素 但我只需要最后 7 个 NSEntityDescription entity NS
  • 如何从 shell/bash 脚本中更改 Linux 上的桌面壁纸

    我想从 shell bash 脚本更改 Linux 上的壁纸 使用其完整路径更改为特定文件 我已经找到了几种方法 见下文 来做到这一点 但这些方法并不适用于所有桌面环境 a 使用 gnome settings daemon gsetting
  • 在react-router中调用getComponent时如何显示加载UI?

    我对 React 很陌生 我不知道如何在使用 getComponent 加载路由时呈现 正在加载 屏幕 getComponent 调用工作正常并显示组件 但 UI 上没有任何迹象表明请求和响应之间发生了任何情况 这就是我想弄清楚的 impo
  • 是否可以:在 1 行代码内将索引增加 1 并回绕到 0 if(index > list.Count) ?

    我现在正在做什么 index index list Count 我想将它们合并到 1 个快速行中 例如 index list Count 但编译器不允许我这样做 我会很高兴知道 是否可以将这 2 行合并为 1 行 快速 易于阅读 解释为什么
  • 为什么如果我尝试执行包中包含 main() 方法的类,我会收到错误消息?

    我有一个Main类包含main 方法声明到名为的包中mainPkg 现在我使用 ANT 脚本使用 Javac 执行编译 该目标
  • SwiftUI 中的活动指示器

    尝试在 SwiftUI 中添加全屏活动指示器 我可以用 overlay overlay 函数于View协议 有了这个 我可以制作任何视图叠加 但我找不到iOS默认样式UIActivityIndicatorView相当于SwiftUI 如何制
  • 使用 html5 在画布内移动文本

    我是 html5 开发的新手 谁能告诉我如何使文本在画布内水平移动到另一侧 以下是如何在屏幕上来回动画文本的示例
  • Wordpress 中的联系表格 7 - 如何隐藏电子邮件中未填写的字段?

    谁能帮我找到一种方法来隐藏发送的电子邮件中的字段 基本上我有多行 如多订单列表 如果用户只填写顶行 我不希望其他空行在电子邮件中显示 这是表单的一段代码 但还有其他 8 行 即 10 个订单 tr class stationary orde
  • LINQ 到 SQL -

    我正在尝试使用 LINQ 将记录插入到子表中 并且我 收到 指定的转换无效 错误 该错误与 有关 涉及的按键 堆栈跟踪是 消息 指定的演员阵容无效 类型 System InvalidCastException 来源 System Data