Ich habe ein Altsystem, bei dem die Beziehung zwischen 2 Tabellen nicht explizit definiert wurde und keine Schlüssel (Primär oder Nicht definiert) vorhanden sind. Die einzigen verwandten Spalten 'Benutzername'Fluent nHibernate: Wie man 2 Tabellen ohne definierte Primärschlüssel abbildet
Etwas wie:
Table: Customer
Column: Id,
Column: Username,
Column: FirstName,
Table: Customer_NEW
Column: Username
Column: FirstNameNew
Ich habe folgende Mapping-Definitionen:
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);
}
}
Das Problem wird nHibernate wird eine Update-Anweisung für die 'Referenz' Erzeugen die Kundenzuordnungsdefinition, die offensichtlich fehlschlägt, wenn versucht wird, ein neues Customer-Objekt einzufügen, das einen Verweis auf CustomerNew-Objekt hat.
Wie bekomme ich die Mapping-Definition zum Generieren der INSERT-Anweisung anstelle eines UPDATE für den Befehl 'Speichern'?
Prost im Voraus
Ollie