NHibernate 为映射 属性 返回空值
NHibernate Returning a Null Value for a Mapped Property
我正在维护一个使用 NHibernate 3.3.3.4001 的旧应用程序
我有一个名为 ProcedureField 的 Class,它有一个名为 ReportCode 的 属性,其映射如下所示:
Map(x => x.ReportCode);
数据库列同名并且是nullable NVARCHAR(50)
由于未知原因,当我使用 PK 从 table 检索一行时,当数据库有值时,属性 为空。示例:
session.Get<ProcedureField>(id);
或
session.Query<ProcedureField>().First(pf => pf.Id == id);
所有其他属性都已考虑在内。
这是超级奇怪的部分。我使用 SQL Server Profiler 和执行 DOES return ReportCode
字符串的实际动态 SQL 嗅探查询。它只是没有填充 属性.
最后一点奇怪的是,如果我添加一个名为 ReportCodey
的新 属性 并将其映射到 ReportCode,它就可以工作(但我必须保留现有的 属性 )!
Map(x => x.ReportCode);
Map(x => x.ReportCodey).Column("ReportCode");
升级到 NHibernate 的最新版本(或任何版本)对我来说不是一个选择,因为它会破坏此应用程序使用的自定义框架中的大量内容(该死的自定义框架!)。
有人遇到过这种性质的怪事吗?
不太确定这是否是一个充分的答案,但它解决了我的问题。
我创建了一个 table,它也被称为 ReportCode
。看起来这是导致问题的原因。奇怪的是 NHibernate 变得很奇怪,因为新的 table 与另一个 table.
中的现有列同名
我放弃了新的 ReportCode
table,它又恢复工作了。
我正在维护一个使用 NHibernate 3.3.3.4001 的旧应用程序
我有一个名为 ProcedureField 的 Class,它有一个名为 ReportCode 的 属性,其映射如下所示:
Map(x => x.ReportCode);
数据库列同名并且是nullable NVARCHAR(50)
由于未知原因,当我使用 PK 从 table 检索一行时,当数据库有值时,属性 为空。示例:
session.Get<ProcedureField>(id);
或
session.Query<ProcedureField>().First(pf => pf.Id == id);
所有其他属性都已考虑在内。
这是超级奇怪的部分。我使用 SQL Server Profiler 和执行 DOES return ReportCode
字符串的实际动态 SQL 嗅探查询。它只是没有填充 属性.
最后一点奇怪的是,如果我添加一个名为 ReportCodey
的新 属性 并将其映射到 ReportCode,它就可以工作(但我必须保留现有的 属性 )!
Map(x => x.ReportCode);
Map(x => x.ReportCodey).Column("ReportCode");
升级到 NHibernate 的最新版本(或任何版本)对我来说不是一个选择,因为它会破坏此应用程序使用的自定义框架中的大量内容(该死的自定义框架!)。
有人遇到过这种性质的怪事吗?
不太确定这是否是一个充分的答案,但它解决了我的问题。
我创建了一个 table,它也被称为 ReportCode
。看起来这是导致问题的原因。奇怪的是 NHibernate 变得很奇怪,因为新的 table 与另一个 table.
我放弃了新的 ReportCode
table,它又恢复工作了。