J'ai un système hérité où la relation entre 2 tables n'a pas été définie explicitement et il n'y a pas de clés (primaires ou définies). Les seules colonnes connexes est « Nom d'utilisateur »Fluid nHibernate: Comment mapper 2 tables sans clé primaire
Quelque chose comme:
Table: Customer
Column: Id,
Column: Username,
Column: FirstName,
Table: Customer_NEW
Column: Username
Column: FirstNameNew
Je définitions suivantes de cartographie:
public sealed class CustomerMap : ClassMap<Customer>, IMap
{
public CustomerMap()
{
WithTable("customers");
Not.LazyLoad();
Id(x => x.Id).GeneratedBy.Increment();
References(x => x.CustomerNew, "Username")
.WithForeignKey("Username")
.Cascade.All();
}
public sealed class CustomerNewMap : ClassMap<CustomerNew>, IMap
{
public CustomerNewMap()
{
WithTable("customers_NEW");
Not.LazyLoad();
Id(x => x.Username).GeneratedBy.Assigned();
Map(x => x.FirstNameNew);
}
}
Le problème est NHibernate génère une instruction UPDATE pour la « référence » dans la définition de mappage de client qui échoue de toute évidence lors de la tentative d'insertion d'un nouvel objet Customer ayant une référence à l'objet CustomerNew.
Comment puis-je obtenir la définition de mappage pour générer l'instruction INSERT au lieu d'une UPDATE pour la commande 'Save'?
Vive à l'avance
Ollie