| 

.NET C# Java Javascript Exception

1
Hi,

ich möchte gerne mit Fluent NHibernate auf Datenbankebene eine eindeutitige n:m-Beziehung erstellen.
Auf der einen Seite habe die Benutzer, auf der anderen die Gruppen:

Als Mapping verwende ich:

// Für den Benutzer
HasManyToMany<Group>(x => x.Groups)
.Cascade.Delete()
.LazyLoad()
.Table("UsersToGroups")
.ParentKeyColumn("Group_id")
.ChildKeyColumn("User_id");

// Für die Gruppe
HasManyToMany<User>(x => x.Users)
.Cascade.Delete()
.LazyLoad()
.Table("UsersToGroups")
.ParentKeyColumn("User_id")
.ChildKeyColumn("Group_id")
.Inverse();


Danke für eure Antworten.
21.02.2011
Freddyvdh 66 3
2 Antworten
0
Ich verstehe leider nicht was genau deine Frage ist, dein Mapping sieht richtig aus.
Wichtig ist bei bidirektionalen Many-to-Many Beziehungen, dass der .Table() Parameter den gleichen Tabellennamen benutzt, damit NHibernate die Beziehung richtig zuordnen kann.

Falls deine Frage war wie du von NHibernate die Tabellen in der Datenbank erstellen läßt, geht das so:
In der FluentNHibernate Konfiguration gibst du den Befehl .ExposeConfiguration(BuildSchema) an:

Fluently.Configure()
.Database(/* database config */)
.Mappings(/* your mappings */)
.ExposeConfiguration(BuildSchema)
.BuildSessionFactory();

und erstellst dafür die BuildSchema Methode:

private void BuildSchema(Configuration cfg)
{
new SchemaExport(cfg)
.Create(false, true);
}


Genaueres dazu hier: Schema generation - Fluent NHibernate wiki
03.03.2011
JeffRogge 293 4
0
Die Tabellen etc werden korrekt erstellt. Das Problem ist folgendes: Ich möchte, dass ein UNIQUE-Key auf der Datenbank erzeugt wird, damit in der Mapping Tabelle nur einmal die Kombination aus z.B. USERID01 und GROUPID01 enthalten sein kann.

Wenn zwei Client zur gleichen Zeit die Verknüpfung erstellen würden sie zweimal eingetragen, was falsch ist.
04.03.2011
Freddyvdh 66 3

Stelle deine Nhibernate-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH