映射二进制类型的主键(16)

时间:2010-07-06 21:00:46

标签: nhibernate fluent-nhibernate

我有一个遗留架构,其中包含带有复合键的表,其中一些键的类型为binary(16) - 它是其他列的MD5哈希值。我无法找到映射此结构的正确方法。我尝试的第一件事就是简单地使用byte []作为我的域类型,NHibernate很快就解散了,因为byte []没有实现Equals(duh!)。我尝试的下一件事是创建一个自定义用户类型(即,实现IUserType)来包装byte []并提供必需的Equals实现,但这不起作用,因为看起来NHibernate(v2.1.2)不支持用户类型在复合键中。我尝试的最后一件事是使用Guid作为我的域类型,希望NHibernate在我的域类型(uniqueidentifier)和我的列类型(binary(16))之间自动进行CAST或CONVERT;它没。我目前正在寻找一种方法来强制NHibernate在CONVERT(uniqueidentifier,c)中包含列c的所有用法。这是可能的,还是有另一种方法可以使这项工作?

1 个答案:

答案 0 :(得分:0)

我不知道nhibernate,但我认为这确实是一个SQL问题。

你有什么理由不能在表上创建一个视图,并添加一个新的索引字段(我假设这里是ms-sql)或类似的转换二进制(16)或uniqueidentifier或nvarchar?