我如何告诉 NHibernate 将 FK 空字符串视为 NULL?

发布于 2024-11-26 09:13:37 字数 274 浏览 2 评论 0原文

我正在处理一个具有一些“有趣”结构的遗留数据库。我有一个表“Operation”,其中有一个名为“PersonnelID”的可为空字符串列。该列指向一个名为“Personnel”的表,该表具有整数主键列。当 PersonnelID 列是表示为字符串或 NULL 的整数时,NHibernate 没有问题,但当该列包含空字符串(或任何其他与此相关的内容时,它就会崩溃。虽然这是有道理的,但我想让它足够聪明,可以识别何时可以使用“PersonnelID”值来加载相关人员以及何时将该值视为垃圾。 看起来像 IUserType,但不完全是。

I'm working off a legacy database with some "interesting" structures. I have a table "Operation" with a nullable string column called "PersonnelID". This column points to a table called "Personnel" with an integer primary key column. NHibernate has no problem when the PersonnelID column is either an integer represented as a string or NULL, but it blows up when that column contains an empty string (or anything else for that matter. While this makes sense, I'd like to make it smart enough to recognize when a "PersonnelID" value can be used to load the related Personnel and when to treat the value as garbage. Where would I inject my logic? Seems like a IUserType, but not quite.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

记忆之渊 2024-12-03 09:13:37

您可以在多对一上设置 not-found="ignore" 属性。从文档中:

not-found(可选 - 默认为异常):指定如何国外
将处理引用缺失行的键:忽略将处理
缺少行作为空关联。

You can set the not-found="ignore" attribute on the many-to-one. From the documentation:

not-found (optional - defaults to exception): Specifies how foreign
keys that reference missing rows will be handled: ignore will treat a
missing row as a null association.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文