有什麼辦法可以爲max_lo設置一個默認值,這個默認值會對所有映射的實體生效?我所有的實體都是通過Xml映射的。我知道默認值是32678,但我想將其降低到1000.爲NHibernate HiLo生成器設置默認max_loop?
我已經看過NH配置xsd,我看不到任何設置。我認爲如果你是通過代碼進行映射的話,你應該能夠實現這個功能,但是我現在使用的是Xml,並且不喜歡轉換。
謝謝。
有什麼辦法可以爲max_lo設置一個默認值,這個默認值會對所有映射的實體生效?我所有的實體都是通過Xml映射的。我知道默認值是32678,但我想將其降低到1000.爲NHibernate HiLo生成器設置默認max_loop?
我已經看過NH配置xsd,我看不到任何設置。我認爲如果你是通過代碼進行映射的話,你應該能夠實現這個功能,但是我現在使用的是Xml,並且不喜歡轉換。
謝謝。
它看起來像有可能通過擴展NH希洛發電機按http://daniel.wertheim.se/2011/03/08/nhibernate-custom-id-generator/
你也可以覆蓋在SessionFactory產生的價值,這是隻有做一次做到這一點:
private void InitSessionFactory()
{
var cfg = new Configuration().Configure();
foreach (var cm in cfg.ClassMappings) {
if (cm.Identifier.IsSimpleValue) {
var simpleVal = cm.Identifier as SimpleValue;
if (simpleVal.IdentifierGeneratorStrategy == "hilo"){
simpleVal.IdentifierGeneratorProperties["max_lo"] = "1000";
}
}
}
sessionFactory = cfg.BuildSessionFactory();
}
這個NH2代碼對於NH3來說可能有一些差異