4
我正在使用Nhibernate 3.0和Fluent Nhibernate來開發這個項目。我們正在使用SQL-Server 2008進行生產。對於版本控制,我們依靠SQL-Server端生成的時間戳。Fluent Nhibernate:如何根據底層數據庫更改字段映射?
最近我已經開始使用內存SQLite數據庫編寫存儲庫測試。不幸的是,SQLite無法生成時間戳,因此任何插入都會因違反約束而失敗。
我想將版本映射到Nhibernate託管的版本,當我編譯SQLite底層數據庫的映射時。傳達這一理念的代碼看起來大致是這樣的:
public class CommonClassMap<T> : ClassMap<T> where T:Entity
{
public CommonClassMap()
{
if (SQLITE)
{
Version(n => n.Version);
}
else
{
Version(n => n.Version).CustomSqlType("timestamp").UnsavedValue("null").CustomType("BinaryBlob").
Generated.Always();
}
不幸的是,我沒能找到任何方式在運行時改變映射或讀取來自類映射基礎數據庫的信息。歡迎任何幫助。