我使用Fluent NHibernate映射Oracle數據庫。這是一個遺留數據庫,所以我不能真正改變我想要的一切。使用流利NHibernate映射自定義GUID
有一個GUID字段,但鍵仍然是複合的(我會盡快更改此鍵,使鍵不復合,但我現在不能這樣做)。 GUID是具有此佈局的VARCHAR2字段:551608b1-275d-49f6-9561-44d01aacf23f。的GUID不是由Oracle中的序列添加,但是從代碼(C#或VB.net)
Guid.NewGuid()
插入一地圖這樣的鍵(VB.net):
With CompositeId()
.KeyReference(Function(x) x.Well, "WellID")
.KeyProperty(Function(x) x.GUID, "GUID")
.KeyProperty(Function(x) x.SetDate, "SET_DATE")
End With
或者像這在C#
CompositeId()
.KeyReference(x => x.Well, "WellID")
.KeyProperty(x => x.GUID, "GUID")
.KeyProperty(x => x.SetDate, "SET_DATE");
映射工作很好,對象都是我想要的,直到我需要保存。
當我嘗試保存或更新未改變對象
m_Session.SaveOrUpdate(obj)
我得到:ORA-02289: sequence does not exist
是,我不使用序列來生成我GUID的問題?我該如何克服這一點?
如果鍵不合成,這會更簡單嗎? –