Je dois ajouter dynamiquement des requêtes nommées à l'objet de configuration NHibernate. Les moteurs de recherche renvoient quelques occurrences référençant NamedSQLQueryDefinition ou NamedQueryDefinition. Voici ce que je tente de faire. Je ne sais pas quoi fournir au constructeur NamedSQLQueryDefinition pour créer une requête avec succès. Quelqu'un peut-il fournir un exemple de comment créer une nouvelle NamedSQLQueryDefinition dans le bon sens? Merci!!Comment la classe NamedSQLQueryDefinition peut-elle être utilisée dynamiquement en tant qu'équivalent de requête sql?
Session initialiseur:
private static ISessionFactory CreateSessionFactory()
{
var configuration = new Configuration();
return Fluently.Configure(configuration.Configure())
.ExposeConfiguration(AddQueries)
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Program>())
.Mappings(m => m.HbmMappings.AddFromAssemblyOf<Program>())
.BuildConfiguration()
.BuildSessionFactory();
}
Les AddQueries ressemblerait à quelque chose comme ceci:
private static void AddQueries(Configuration cfg)
{
var nameQuery = new NamedSQLQueryDefinition("exec pr_GETCustomer ?", ...)
cfg.NamedSQLQueries.Add("pr_GETCustomer", nameQuery);
var cust = cfg.GetClassMapping(typeof (Customer));
cust.LoaderName = "pr_GETCustomer";
}
PS: Je suis en train cette route parce que Fluent NHibernate ne met pas en œuvre un moyen de configurer le chargeur & sql-query éléments du fichier hbm.
Merci, je vais essayer cette approche. J'essayais aussi de comprendre ce que QuerySpaces était et je n'avais pas envie de creuser dans la source de NHibernate. –