Je possède ce mapping courant:NHibernate: pourquoi ma requête de profileur ne correspond-elle pas à ma cartographie fluide?
sealed class WorkPostClassMap : ClassMap<WorkPost>
{
public WorkPostClassMap()
{
Not.LazyLoad();
Id(post => post.Id).GeneratedBy.Identity().UnsavedValue(0);
Map(post => post.WorkDone);
References(post => post.Item).Column("workItemId").Not.Nullable();
References(Reveal.Property<WorkPost, WorkPostSheet>("Owner"), "sheetId").Not.Nullable();
}
classe parente:
sealed class WorkPostSheetClassMap : ClassMap<WorkPostSheet>
{
public WorkPostSheetClassMap()
{
Id(sheet => sheet.Id).GeneratedBy.Identity().UnsavedValue(0);
Component(sheet => sheet.Period, period =>
{
period.Map(p => p.From, "PeriodFrom");
period.Map(p => p.To, "PeriodTo");
});
References(sheet => sheet.Owner, "userId").Not.Nullable();
HasMany(sheet => sheet.WorkPosts).KeyColumn("sheetId").AsList();
}
classe WorkItem:
sealed class WorkItemClassMap : ClassMap<WorkItem>
{
public WorkItemClassMap()
{
Not.LazyLoad();
Id(wi => wi.Id).GeneratedBy.Assigned();
Map(wi => wi.Description).Length(500);
Version(wi => wi.LastChanged).UnsavedValue(new DateTime().ToString());
}
}
Et quand une collection de WorkPosts sont paresseux chargés du travail possédante feuille de poste Je reçois l'instruction de sélection suivante:
SELECT workposts0_.sheetId as sheetId2_,
workposts0_.Id as Id2_,
workposts0_.idx as idx2_,
workposts0_.Id as Id2_1_,
workposts0_.WorkDone as WorkDone2_1_,
workposts0_.workItemId as workItemId2_1_,
workposts0_.sheetId as sheetId2_1_,
workitem1_.Id as Id1_0_,
workitem1_.LastChanged as LastChan2_1_0_,
workitem1_.Description as Descript3_1_0_
FROM "WorkPost" workposts0_
inner join "WorkItem" workitem1_ on workposts0_.workItemId=workitem1_.Id
WHERE [email protected];@p0 = 1
Non, il y a une ou deux choses qui ne fait pas me sence:
- La workpost propriété « Id » se produit deux fois dans l'instruction select
- Il y a une sélection d'une colonne se référant à nommé "idx" mais cette colonne ne fait partie d'aucun mappage fluide.
Toute personne qui peut aider à faire la lumière sur ce sujet?
Pouvez-vous confirmer la déclaration de la propriété 'WorkPosts' de' WorkPostSheet'? –
Veuillez également fournir le mappage WorkItem. –
Merci pour la réponse rapide, mais je n'ai pas compris ce que vous vouliez que je confirme. Pouvez-vous être un peu plus précis? – Marius