Je vais avoir quelques problèmes avec obtenir la convention suivante au travail:Fluent NHibernate: Colonne convention de mappage
public class ColumnNameUpperConvention : IPropertyConvention
{
public void Apply(IPropertyInstance instance)
{
string cName = instance.Property.Name.ToUpper();
instance.Column(cName);
}
}
Ce que je veut le code ci-dessus pour faire est de mapper une propriété appelée « Modifié » à une colonne nommée "MODIFIED".
Et voici ma config:
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();
Quand je debug je peux voir que mon code de convention est exécuté, mais il ne semble pas que ce fait ne quoi que ce soit.
Ai-je raté quelque chose?
PS. Les mappages que j'ai définis explicitement dans ClassMap remplacent-ils automatiquement les conventions? Il y a des exceptions à la convention ci-dessus et je veux mapper ces propriétés à la main.