- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我们有一个主要对应于 System.Int64 的自定义类型,用于我们的系统标识符(它对潜在的长值可以是什么提供了一些额外的限制)。
我们还定义了一个 IUserType 以允许我们将此类型的属性映射到 NHibernate,但是当针对 oracle 数据库运行时,我们遇到了似乎被称为 "Int/Decimal Problem" 的问题。
用户类型(get/set)的相关部分在这里:
public object NullSafeGet(IDataReader rs, string[] names, object owner) {
var longValue = Convert.ToInt64(NHibernateUtil.Int64.NullSafeGet(rs, names[0]));
return new Identifier(longValue);
}
public void NullSafeSet(IDbCommand cmd, object value, int index) {
if (value == null || ((Identifier)value).IsNew) {
NHibernateUtil.Int64.NullSafeSet(cmd, null, index);
return;
}
NHibernateUtil.Int64.NullSafeSet(cmd, ((Identifier)value).Value, index);
}
我们当前在尝试保存包含标识符属性的任何内容时从 ISession 的 SaveOrUpdate 方法中获取无效的转换异常。
是否有一种同时适用于 Oracle 和 SQL Server 的方式来处理这个问题,或者我们是否需要创建两个不同的 UserType 实现?
最佳答案
经过更多调查,问题可能出在 sequence-identity generation strategy 上。 .它尝试使用这样的查询:
INSERT INTO my_entity (id, name)
VALUES (hibernate_sequence.nextval, :p0)
returning id into :nhIdOutParam
使基于序列的身份的工作方式类似于它在 SQL 服务器上的工作方式(允许使用单个查询进行插入和 ID 检索)。我猜 out 参数以小数形式出现,这就是我遇到问题的地方。
切换到它正在运行的“本地”生成策略,但我仍然希望听到有关此的任何其他见解。
关于c# - IUserType 与 ODP.net 对应的 Int64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4764152/
我有这个实现 IUserType 的类: public class StringToIntType : IUserType { /// /// mutable
嗨,我想知道两者之间的区别,为什么要使用一种而不是另一种以及何时使用? 最佳答案 您的对象模型不一定与您的数据库模型一一对应,而且在大多数情况下会更丰富。组件是通过在对象模型中封装功能来丰富数据库模型
首先让我为这篇文章的长度道歉,虽然它主要是代码,所以我希望大家多多包涵! 我有一个处理遗留数据库的场景,我需要使用 NHibernate 3.2 编写一个 IUserType 来获取一个 2 个字符的
我使用 NHibernate 和 Postgresql 作为后端,并且必须创建自定义类型以将 System.DateTime 转换为 Postgresql“时间”类型以及将 System.TimeSp
我正在尝试通过代码获取使用 NHibernate (v3.3) 映射的自定义类型。我试着按照这个例子 here ,但没有运气。我试图实现的自定义类型是一种修剪来自数据库的字符串的类型。 我收到以下异常
我正在尝试为州和国家/地区代码实现 IUserType,这将允许我访问两个字母的代码(存储在数据库中的内容)以及全名。我遵循 NHibernate 3.0 Cookbook(第 225 页)中的示例,
我有一个 LocalizedString 类,用于存储单个值的本地化。这个概念大致基于 post by Fabio Maulo . 我在 NHibernate 3.2 中使用新的 Mapping-By
我如何在 NHibernate 中构建针对自定义 IUserType 字段的查询? 更具体地说:我正在处理一个棕地应用程序。我在数据库中有一个名为“State”的字段,其中包含一个表示给定对象所处状态
在执行如下 NHibernate Linq 查询时是否可以防止此异常: var dateFilter = DateTime.Parse("1500-01-01"); return _session.Q
我们有一个主要对应于 System.Int64 的自定义类型,用于我们的系统标识符(它对潜在的长值可以是什么提供了一些额外的限制)。 我们还定义了一个 IUserType 以允许我们将此类型的属性映射
在我的项目中,我使用 IUserType (BooleanM1) 来处理 bool 值并将 -1 表示为真,0 表示为假值写入数据库。到目前为止一切正常。映射看起来像这个: 所以如果我做如下查询 v
对于我当前的项目,我在 C# 中使用 CaSTLe 的 ActiveRecord。对于我的一张表,我确实需要使用自定义类型类(处理愚蠢的时间到时间跨度的转换)。为了保持我的代码干净,我喜欢在对象映射类
我正在尝试创建一个 NHibernate IUserType野田时间LocalTime逻辑上映射到 time 的类型输入 Sql Server 2008/2012。我能够从数据库中保存和加载值。但是,
我是一名优秀的程序员,十分优秀!