0
我有一些問題,得到以下約定的工作:功能NHibernate:列映射約定
public class ColumnNameUpperConvention : IPropertyConvention
{
public void Apply(IPropertyInstance instance)
{
string cName = instance.Property.Name.ToUpper();
instance.Column(cName);
}
}
我想要什麼上面的代碼做的是映射一個叫做財產「修改」,以一個名爲「MODIFIED」的列。
這是我的配置:
var config =
Fluently.Configure()
.Database(OracleClientConfiguration.Oracle10
.ConnectionString(c => c.FromConnectionStringWithKey(cstringName)))
.Mappings(m =>
{
m.FluentMappings.AddFromAssemblyOf<AgilityObject>();
m.AutoMappings.Add(
AutoMap.AssemblyOf<AgilityObject>(mappingConfiguration)
.Conventions.Add<ColumnNameUpperConvention>());
})
.ExposeConfiguration(x => x.SetProperty("current_session_context_class", "thread_static"))
.ExposeConfiguration(x => x.SetProperty("generate_statistics", "true"))
.BuildSessionFactory();
當我調試,我可以看到我的約定代碼得到執行,但它似乎並不像它實際上確實什麼。
我錯過了什麼嗎?
PS。我在ClassMap中顯式設置的映射是否會自動覆蓋約定?上述慣例有例外,我想手動映射這些屬性。