Question

Disons que j'ai une table de demandes qui se présente comme suit:

RequestId INT  
ReferenceNumber VARCHAR

Chaque demande est enregistrée dans une table requestlog. Il n'y a pas de clé étrangère entre les tables:

RequestLogId INT  
ReferenceNumber VARCHAR  
Content VARCHAR  

Le journal des demandes contient le contenu de la demande. Ce contenu doit être stocké pendant un certain temps. La demande peut être supprimée, mais le journal ne peut l'être qu'après un certain temps.

Comment mapper mon objet de requête afin qu'il puisse contenir une liste de logs de requêtes, basée sur le numéro de référence?

J'ai essayé ceci:

Table("InsuranceRequest");  
Id(i => i.Id).Column("InsuranceRequestId");  
Map(i => i.ReferenceNumber);  
HasMany(i => i.InsuranceRequestLog).KeyColumn("RefenceNumber").LazyLoad.Cascade.None();

Cela ne fonctionne pas bien. Ce mappage tente de mapper le numéro de référence sur le RequestLogId de requestlog. Existe-t-il un moyen de spécifier que la colonne de jonction doit être le numéro de référence de insurancerequestlog?

Était-ce utile?

La solution

rien n’empêche le plus grand nombre dans la structure de votre table. Je recommande de changer la structure et d'en faire des clés étrangères, et je suis sûr que le mappage plusieurs à plusieurs fonctionnera pour vous si le mappage ne fonctionne pas après le changement de structure.

un autre conseil pour vous: prenez une base de données vide et essayez d’exposer le schéma .. que vous serez en mesure de voir ce que nhibernate pense que la structure devrait ressembler

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top