我有一個C#中的對象,我想用作數據庫中的主鍵,在添加新對象時自動遞增。該對象基本上是一個ulong值的包裝,它使用值的某些位作爲附加提示。我想將它存儲爲數據庫中的「純粹」ulong值,但我希望在從數據庫加載/卸載值時獲得自動轉換。 IE,將「提示」位應用於基於它們來自的表的值。流體NHibernate,自定義類型和Id映射
根據我在網上找到的例子數量(本論壇中的大量幫助),我開始實施自己的IUserType對象。
我有一個起作用的的ObjectId類是對象ID
class ObjectIdType: IUserType
{
private static readonly NHibernate.SqlTypes.SqlType[] SQL_TYPES = { NHibernateUtil.UInt64.SqlType };
public NHibernate.SqlTypes.SqlType[] SqlTypes
{
get { return SQL_TYPES; }
}
public Type ReturnedType
{
get { return typeof(ObjectId); }
}
...
}
我有一個映射類,看起來像這樣:
public class ObjectTableMap()
{
Id(x => x.Id)
.Column("instance_id")
.CustomType<ObjectIdType>()
.GeneratedBy.Native();
}
在這一點上,在配置我得到一個異常標識只能是一個整數。我想這是有道理的,但我有一半希望實現自定義類型,本地ulong數據庫類型將接管和工作。
我試過去創建一個自定義生成器的路徑,但它仍然有點超出我的技能水平,所以我絆倒了它。
我的問題是,是否有可能完成我正在嘗試使用映射?