【问题标题】:how do you translate a space value in a database field to a null in .NET with Fluent NHibernate?如何使用 Fluent NHibernate 将数据库字段中的空间值转换为 .NET 中的空值?
【发布时间】:2010-03-30 12:18:20
【问题描述】:

我正在使用将“空白”值存储为单个空格的旧数据库。 Fluent NHibernate 有没有办法通过约定或映射覆盖,我可以将这个“空白”值转换为 .NET null? (我知道我仍然需要将空值作为单个空格保存到该数据库中,但我将为此使用保存事件侦听器。

【问题讨论】:

    标签: nhibernate fluent-nhibernate nhibernate-mapping legacy


    【解决方案1】:

    您应该为此使用IUserType 的自定义实现,而不是侦听器。这是网络上提供的许多示例的one example。 James Gregory 写了一篇good article,介绍了如何使用 Fluent NHibernate 约定实现 IUserTypes。

    【讨论】:

    • 我也会对用户类型执行此操作。
    • 没有任何类型的约定或我可以设置的东西,而不是必须在每个字段上设置 IsCustomType(这是整个数据库中的传统约定)?
    • 是的。我不是约定方面的专家,但您可以将 IUserType 替换为具有约定的另一种类型。在您的情况下,您可以使用将空字符串存储为单个空格的 IUserType 替换所有字符串类型映射。这应该会有所帮助:jagregory.com/writings/…
    • 太棒了!谢谢!唯一的问题是我没有最新版本的 nhibernate 并且我现在正在犹豫升级,因为我使用的是没有 itypeconvention 并且似乎也没有 addtypeconvention 的清晰架构。
    • 我对 Sharp 不是很熟悉,但我知道它使用/可以使用 Fluent NHibernate,这就是约定的魔力所在。
    猜你喜欢
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 2022-09-27
    相关资源
    最近更新 更多