将带有复合键/外键的表映射到该表

2023-12-01

我正在尝试映射具有组合键的表并映射引用该表的另一个表。

假设这些表:

  1. ITEMDELIVERY with relevant columns:
    1. ITEMDELIVERY_ID
    2. DELIVERY_DATE
  2. ITEMDELIVERYDETAIL with relevant columns:
    1. ITEMDELIVERYDETAIL_ID
    2. ITEMDELIVERY_ID
    3. PARTITIONDATE

ITEMDELIVERY.ITEMDELIVERY_ID and ITEMDELIVERY.DELIVERY_DATE共同构成PK。
ITEMDELIVERYDETAIL.ITEMDELIVERY_ID and ITEMDELIVERYDETAIL.PARTITIONDATE形成 FK 从ITEMDELIVERYDETAIL to ITEMDELIVERY.

我该如何映射这个?

我尝试了以下方法:

IAutoMappingOverride<ItemDeliveryDetail>:

mapping.References(x => x.ItemDelivery)
       .Columns("ITEMDELIVERY_ID", "PARTITIONDATE");

IAutoMappingOverride<ItemDelivery>:

mapping.CompositeId().KeyProperty(x => x.Id, "ITEMDELIVERY_ID")
                     .KeyProperty(x => x.DeliveryDate, "DELIVERY_DATE");

但这不起作用,它会导致System.InvalidCastException: Invalid cast from 'DateTime' to 'Double'.打电话时SaveOrUpdate在会议上。

UPDATE:

我刚刚检查了生成的 SQL,它显示 NHibernate 以某种方式切换了值:

INSERT INTO ITEMDELIVERYDETAIL
       (ITEMDELIVERYDETAIL_ID,      AMOUNT, PROCESSED_BY_REM, SINGLE_ITEM_PRICE, 
        ITEMDELIVERY_ID, PARTITIONDATE, SupplierInvoice_id)
VALUES (hibernate_sequence.nextval, :p0,    :p1,              :p2,               
        :p3,             :p4,           :p5)
returning ITEMDELIVERYDETAIL_ID into :nhIdOutParam;

:p0 = 20.12.2011 16:29:44 [Type: Double (0)], 
:p1 = 6 [Type: DateTime (0)], 
:p2 = 21.12.2011 16:29:44 [Type: Double (0)], 
:p3 = 7 [Type: Int32 (0)], 
:p4 = 0 [Type: DateTime (0)], 
:p5 = 19.12.2011 16:29:44 [Type: Int32 (0)], 
:nhIdOutParam = 27638398 [Type: Int32 (0)]

正如你所看到的,参数完全是一团糟......
他们应该是这样的:

:p0 = 6 [Type: Double (0)], 
:p1 = 21.12.2011 16:29:44 [Type: DateTime (0)], 
:p2 = 7 [Type: Double (0)], 
:p3 = 0 [Type: Int32 (0)], 
:p4 = 19.12.2011 16:29:44 [Type: DateTime (0)], 
:p5 = 27638398 [Type: Int32 (0)], 
:nhIdOutParam = NULL [Type: Int32 (0)]

我解决了这个问题。这种奇怪行为的原因是我有一个明确的属性PartitionDate也被映射(mapping.Map(x => x.PartitionDate).Column("PARTITIONDATE");).
这基本上意味着PARTITIONDATE列被映射两次。

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

将带有复合键/外键的表映射到该表 的相关文章

  • C++:无法使用scoped_allocator_adaptor传播polymorphic_allocator

    我有一个vector
  • 模板类的不明确多重继承

    我有一个真实的情况 可以总结为以下示例 template lt typename ListenerType gt struct Notifier void add listener ListenerType struct TimeListe
  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • SSH 主机密钥指纹与模式 C# WinSCP 不匹配

    我尝试通过 WinSCP 使用 C 连接到 FTPS 服务器 但收到此错误 SSH 主机密钥指纹 与模式不匹配 经过大量研究 我相信这与密钥的长度有关 当使用 服务器和协议信息 下的界面进行连接时 我从 WinSCP 获得的密钥是xx xx
  • 为什么 POSIX 允许在只读模式下超出现有文件结尾 (fseek) 进行搜索

    为什么寻找文件结尾很有用 为什么 POSIX 让我们像示例中那样在以只读方式打开的文件中进行查找 c http en cppreference com w c io fseek http en cppreference com w c io
  • c# Asp.NET MVC 使用FileStreamResult下载excel文件

    我需要构建一个方法 它将接收模型 从中构建excel 构建和接收部分完成没有问题 然后使用内存流导出 让用户下载它 不将其保存在服务器上 我是 ASP NET 和 MVC 的新手 所以我找到了指南并将其构建为教程项目 public File
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • 使用安全函数在 C 中将字符串添加到字符串

    我想将文件名复制到字符串并附加 cpt 但我无法使用安全函数 strcat s 来做到这一点 错误 字符串不是空终止的 我确实设置了 0 如何使用安全函数修复此问题 size strlen locatie size nieuw char m
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 我的 strlcpy 版本

    海湾合作委员会 4 4 4 c89 我的程序做了很多字符串处理 我不想使用 strncpy 因为它不会终止 我不能使用 strlcpy 因为它不可移植 只是几个问题 我怎样才能让我的函数正常运行 以确保它完全安全稳定 单元测试 这对于生产来
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • GDK3/GTK3窗口更新的精确定时

    我有一个使用 GTK 用 C 语言编写的应用程序 尽管该语言对于这个问题可能并不重要 这个应用程序有全屏gtk window与单个gtk drawing area 对于绘图区域 我已经通过注册了一个刻度回调gtk widget add ti
  • 在 ASP.NET 中将事件冒泡为父级

    我已经说过 ASP NET 中的层次结构 page user control 1 user control 2 control 3 我想要做的是 当控件 3 它可以是任何类型的控件 我一般都想这样做 让用户用它做一些触发回发的事情时 它会向
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但

随机推荐

  • 使用 BouncyCastle PGP 解密文件时出现异常

    我试图使用名为 PgpDecrypt 的类来解密客户端提供的示例文件 但是当代码来到这一行时 Stream clear pbe GetDataStream privKey 它返回一个错误 解密密钥异常 这是我的解密代码 PgpDecrypt
  • 尽管存在于目标文件中,第谷无法解析对捆绑包的依赖关系

    我为多个插件 一个功能 一个站点和一个在pom xmls 我可以从 Eclipse IDE 中运行我的应用程序 也mvn clean package构建得很好 但是 当我添加需要的插件时ca odell glazedlists 这也在我的目
  • PHP 请求 PHP Websocket

    我正在寻求有关 websocket 问题的帮助 我构建了一个简单的 HTML5 websocket 来连接我的 AngularJS 站点 websocket 通过简单的 JS 连接 和我的 PHP 服务器 连接也可以正常工作 并且发送和接收
  • 动态加载 Perl 模块

    我正在尝试创建一个可扩展的系统 通过该系统我可以将新模块编码为处理程序 我希望程序自动加载放入 Handlers 目录并符合 Moose Role 接口的任何新 pm 文件 我想知道是否有 Perl 模块或更多 Moose 认可的方法来自动
  • getpwnam 中的内存泄漏是否有修复或解决方法?

    getpwnam 中的内存泄漏是否有修复或解决方法 getpwnam does not遭受内存泄漏 事实上 后续调用将覆盖其静态内部缓冲区 这种函数是不可重入因此非线程安全 保罗建议使用getpwnam r 这是可重入版本 可以安全地在多线
  • selectItem 时的 Collection View 布局错误 (Swift 5)

    从 viewDidLoad 中选择单元格后 布局发生变化 选择单元格之前 选择单元格后 let indexPath IndexPath row SelectedFolderIndex section 0 collectionView sel
  • fields_for 使用数组进行 has_many 关联

    控制器 项目 子 类型 控制器 rb def new svn repos svn software svn hardware project sub type ProjectSubType new project sub type repo
  • 如何触发猫鼬 updateAt

    当数据发生变化时 我需要更新我的模型 可悲的是 this似乎不起作用 const mongoose require mongoose const moment require moment const Schema mongoose Sch
  • Spring MVC 中一种表单有多个 commandName

    我有一个jsp页面 我将在其中使用来自不同POJO类的许多属性 因此我需要在表单中使用两个commandName 可以在控制器中使用多个 ModelAttribute 那么如果多个 commandName 不起作用又有什么意义呢 例如我想插
  • 程序在 JFrame 高度最大化时不重新绘制

    您可以通过多种方式通过鼠标拖动来调整 JFrame 的大小 您可以调整其高度 顶部 底部边缘 您可以调整其宽度 左 右边缘 您可以调整两者的大小 在角落 您可以通过将整个窗口拖动到显示器顶部边缘来最大化它 您可以通过将其顶部 底部边缘拖动到
  • 根据 MacOS 文件夹中的文件名更改文件的创建和修改日期和时间

    我的文件夹中有很多文件 文件名如下 20190618 213557 mp4 20190620 231105 mp4 20190623 101654 mp4 我需要根据文件名更改创建日期和时间 20190618 213557 YYYYMMDD
  • PHP 从 API 响应中获取 json 汇率值

    我正在使用货币层 JSON API 来获取实时货币转换值 有谁知道我如何获取这两个值 result 值和 quote 使用 PHP 从下面的 API 响应中获取值 我是 PHP 新手 我想知道是否可以将其存储在变量中 这是 JSON suc
  • 使用 R 中的 str_count 函数对多个模式进行计数

    对 R 相当陌生 并且在使用 R 时遇到了一些困难string count函数来检测多个未知且包含在单独向量中的单词 现在 我知道如何使用以下代码检测模式的单个实例 str count mydf string Apples 我想要做的是从本
  • 如何获取pivot_wider而不是列表中的总值总和?

    data lt data frame row id 0 19 Prediction c 4 20631885375613 0 677197140556434 0 889543113836738 37 8093227242093 105 86
  • Azure 服务结构实例计数

    我正在使用 azure 服务结构开发 POC 将我的服务部署在本地集群中 并且在 Local xml 中的默认设置下运行良好 当我更改实例计数时 它会抛出以下异常 更改实例计数的选项在哪里 基本上我现在正在尝试在两个节点上运行我的服务 当默
  • 使用正则表达式进行 Spark 过滤

    我试图将文件数据过滤为每个日期的好数据和坏数据 因此将得到 2 个结果文件 从测试文件中 前 4 行需要输入良好的数据 最后 2 行需要输入错误的数据 我有 2 个问题 我没有得到任何好的数据 结果文件为空 错误的数据结果如下所示 仅选取名
  • 没有 exec 的 fork,以及共享对象使用的 pthread_mutex_t

    我正在处理一个执行以下操作的网络服务器项目fork没有exec 该程序依赖于OpenSSL 而OpenSSL需要一定数量的锁 CRYPTO NUM LOCKS准确地说 目前约为40 锁通常是pthread mutex t在 Linux 上
  • 在 bash 脚本中使用 screen

    我正在远程服务器上运行游戏服务器 我使用独立的屏幕实例使其保持运行 我现在正在创建一个脚本 可用于关闭服务器 备份所有重要文件并再次启动它 但是我在处理屏幕时遇到了一些困难 我假设我可以通过在脚本中调用 screen r 来切换到脚本中的分
  • LINQ 按日期降序对对象集合进行排序

    我有一堆对象 产品 我想先按创建日期降序对它们进行排序 然后只显示前 10 条记录 创建日期 DateTime 的格式如下 4 4 2007 12 00 00 AM 这是我尝试过的 如何按日期降序排列前 10 名 var productLa
  • 将带有复合键/外键的表映射到该表

    我正在尝试映射具有组合键的表并映射引用该表的另一个表 假设这些表 ITEMDELIVERY with relevant columns ITEMDELIVERY ID DELIVERY DATE ITEMDELIVERYDETAIL wit