问题标签 [iusertype]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何使用 Fluent NHibernate 和 IUserType 将两列映射到一个成员?
我有一个 IUserType ,它将两列映射为一个类型,如下所示:
我无法使用 Fluent NHibernate 指定两个列名。我试过这个:
但第二列名称被忽略。如何使用 Fluent NHibernate 指定两个列名?
c# - NHibernate 代码映射和 IUsertype 不起作用
我正在尝试通过代码获取与 NHibernate (v3.3) 映射一起使用的自定义类型。我尝试在此处遵循此示例,但没有运气。我试图实现的自定义类型是一种修剪来自数据库的字符串的类型。
我收到以下异常:
PropertyAccessException: Invalid Cast(检查您的映射是否有属性类型不匹配)。{“无法将“System.String”类型的对象转换为“ConsoleApplication1.TrimmedString”类型。”}
这是我的全部尝试(要点)。
这是我的映射:
不确定我是否必须在 NHibernate 配置对象中做任何特别的事情,但我已将其包含在上面链接的 Gist 中。
c# - 如何将原生 SQL 查询结果映射到 NHibernate 中的自定义值类型列表?
我有一个名为的值类型FiscalYear
,它本质上是一个整数的包装器。我也NHibernate.UserTypes.IUserType
为它实现了。现在我可以将类型的属性FiscalYear
直接映射到 SQL 类型,NHibernate 会自动转换它们。
一切正常。但现在我想执行原生 SQL 查询以从数据库中获取财政年度列表。这是当前代码:
可行,但我的问题是:由于我已经实现了IUserType
for FiscalYear
,是否可以将此代码简化为如下所示:
不幸的是,这不起作用。使用Transformers.AliasToBean
也无济于事,因为FiscalYear
它是一种值类型而不是实体。
我认为这确实应该很容易做到,但到目前为止我的所有尝试都失败了。我想我只是错过了什么?
javascript - 允许用户使用 JavaScript 键入段落
有没有办法创建一个允许用户输入段落的框?我希望保存用户的输入。
c# - 带有 IUserType 的 NHibernate QueryOver 失败
我有一个带有 NHibernate 的自定义用户类型,并且自定义类型可以很好地保存和更新。QueryOver
但是,在此自定义用户类型上使用时会发生错误。我收到错误消息:could not resolve property: SpecialType.Code of: NHibernateComplexIUserTypeExample.Person
。
我知道我可以使用 Component() 而不是 Map() 将 SpecialType 类与自定义类型进行映射,但是在此示例之外还有其他一些考虑因素会使其不合适。如果可能的话,我想解决这个问题,同时将其保留为 IUserType。
这是我可能导致此错误的示例代码。
错误发生在Program.cs
与QueryOver<>
.
个人.cs
人物地图.cs
程序.cs
SpecialTypeUserType.cs
特殊类型.cs
数据库表定义
c# - Fluent NHibernate - 使用自定义映射映射枚举列表
在我们的解决方案中,当映射枚举时,不是简单地保存整数或文本描述,而是使用自定义IUserType
来根据数据库表解析文本描述并检索适当的 ID。(这些值在应用程序启动时缓存以加快速度)
这对于单个 Enum 属性非常有效。映射代码(使用映射覆盖)看起来像这样......
POCO:
映射覆盖:
当我有要映射的枚举列表时,就会出现我的问题。例如...
POCO:
...但我无法弄清楚如何CustomType
在该MAP YOUR CUSTOM TYPE HERE
部分中连接。
另一方面,这个 SO 线程建议CustomType
不适用于集合 - 但是该特定评论的日期为 2009 年,所以我希望从那时起有所改变。
这种类型的映射是否可能(如果可以,我错过了什么)还是我需要开始寻找最合适的解决方法?
干杯。
c# - NHibernate:用户类型将文件保存在磁盘而不是数据库上
目前我们正在数据库中保存文件(或者更好:它们的内容作为流)。
总而言之,到目前为止,这一切都运作良好,除非存在一些问题:例如,您无法保存大于 2gb 的文件。
所以我们现在正在寻找更好的解决方案。如果您不将文件保存在数据库中,则必须将它们保存在磁盘上。为了不重新实现整个持久化过程,我们考虑实现一个自定义用户类型 (IUserType),它将文件保存在磁盘上并将文件名存储在数据库中。
NullSafeSet 会将文件保存在磁盘上并将位置存储在数据库中,而 NullSafeGet 将(懒惰地)返回从数据库中的文件名创建的流。
我们在该解决方案中发现了一些优点,但也发现了一些缺点:
优点: - 除了实现 UserType 和最小限度地更改映射文件 - 将文件保存在磁盘上 - ... 没有更改代码 - ...
缺点: - 在哪里处理由 UserType 创建的流 - 保存文件的固定文件夹(到目前为止对我们来说没有问题) - 可能会减慢 nhibernate - ...
所以现在我们想知道将文件保存在磁盘上的 UserType 是否是一个疯狂的想法,或者是否值得研究以解决缺点?