gpt4 book ai didi

NHibernate DateTimeOffsetType代理源码?

转载 作者:行者123 更新时间:2023-12-04 18:10:13 24 4
gpt4 key购买 nike

我有一个现有的应用程序使用 NHibernate 从已经运行了一段时间的数据库 (SQL Server 2008 R2) 加载一些相当复杂的对象。

今天,我在尝试使用 JSON.Net 序列化我的对象时遇到以下错误:

Error getting value from 'DefaultValue' on 'NHibernate.Type.DateTimeOffsetType'.

我的 NHibernate 映射中的所有属性都没有使用 DateTimeOffsetType,因此我怀疑 NHibernate 正在以某种方式将我的对象的属性代理给它。

我的对象上有几个 Nullable DateTime 值,但对我当前的版本来说没有什么新的。

我应该从哪里找出 NHibernate 正在尝试使用该类型的哪些属性?

我还缺少什么?当我尝试使用此代码进行序列化时出现错误:

 var converter = new IsoDateTimeConverter();
x.Json = JsonConvert.SerializeObject(myObject, converter);

同样,该代码已经存在了很长一段时间,只是问题是新的。

最佳答案

也许这不是您一直在寻找的解决方案,但仍然是一个解决方案 - 我遇到了类似的情况。在我的例子中,我忘记了从 web api 调用中返回我的 DTO,而默认的 json 序列化程序是这样做的。

现在我将我的数据对象映射到一个具有数据协定属性的 DTO 对象,并将其序列化。由于我的 DTO 很简单并且没有得到 NHibernate Proxified,所以这个错误似乎不再发生。

否则 - 我已经为其他可空日期完成了此操作 - 我希望在其中更好地控制序列化。为它定义一个自定义转换器并按照您的意愿进行操作,但针对此 Nhibernate 类型。不过,我宁愿完全不序列化(或尝试序列化)这些代理类型。

关于NHibernate DateTimeOffsetType代理源码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15619931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com