私はFluent NHibernateを使用してOracleデータベースをマッピングしています。私は本当に私が望むすべてを変更することはできませんので、それはレガシーデータベースです。Fluent NHibernateでカスタムGUIDをマッピング
GUIDフィールドがありますが、キーはまだコンポジットです(できるだけ早くこれを変更して、キーがコンポジットではないが、今はできません)。 GUIDは551608b1-275d-49f6-9561-44d01aacf23fのレイアウトを持つVARCHAR2フィールドです。 GUIDは、Oracleのシーケンスによって追加、私は、このようなキー(VB.net)マップコード(C#またはVB.net)
Guid.NewGuid()
から挿入されていない。
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を生成するためのシーケンスを使用してはいけない問題ですか?どうすればこれを克服できますか?
キーがコンポジットでないとこれは簡単になりますか? –