Fluent-NHibernate-Tabellenzuordnung ohne Primärschlüssel

8

Ich versuche eine Zuordnung zu einer Datenbanktabelle zu erstellen, die keine Primärschlüssel / Referenzen hat.

%Vor%

Dies schlägt fehl und erwartet ID oder Composite-ID. Ist dies in flüssigem Nhibernat möglich?

    
Adnan 05.05.2009, 01:54
quelle

6 Antworten

4

In Oracle zumindest habe ich dafür "ROWID" verwendet. Für mssql könnten Sie die integrierte Funktion "ROW_NUMBER ()" für den schreibgeschützten Zugriff auf die Tabelle verwenden, aber ich habe das nicht versucht ...

    
Tompi 23.05.2011 13:11
quelle
2

Nein. Sie müssen einen Ersatz-Primärschlüssel hinzufügen, z. B. eine Identitätsspalte in SQL Server, um diese Tabelle zuzuordnen. Soweit ich weiß, wird dies von NHibernate selbst nicht unterstützt.

Warum haben Sie keinen Primärschlüssel in dieser Tabelle?

    
Jamie Ide 05.05.2009 02:11
quelle
0

Diese Funktion wird von nhibernate nicht unterstützt, soweit ich weiß. Als allgemeine Faustregel sollten Sie jedoch immer eine Art von ID haben und wenn Sie sich in einer Situation befinden, in der Sie denken, dass Sie keine benötigen, sollten Sie Ihr Datenmodell bewerten. Eine ID, ob es sich um einen tabellenspezifischen Primärschlüssel oder einen Ersatzschlüssel aus einer anderen Tabelle handelt, sollte vorhanden sein. Dies stellt nicht nur sicher, dass nhibernate die Tabelle verarbeiten kann, sondern hilft auch bei der Indexierung.

Bevor Sie anfangen anzunehmen, dass nhibernate Ihre Bedürfnisse nicht erfüllt, überlegen Sie, warum Sie keinen Schlüssel auf dem Tisch haben und welchen Sinn es hat, keinen zu haben.

    
Fourth 23.05.2011 13:21
quelle
0

Wenn wir eine Spalte aus der Tabelle ohne Primärschlüssel / Identität coulmn holen können, dann können wir fließend wie folgt verwenden:

%Vor%     
Jiss 11.02.2013 07:45
quelle
0

Wenn die Tabelle Daten enthält, die zu einer anderen Entität gehören, können Sie sie als eine Sammlung von Komponenten zuordnen. Komponenten werden nicht selbst identifiziert, sondern gehören zu einer anderen Entität, deren identifiziert ist.

    
Stefan Steinegger 08.04.2013 11:31
quelle
0

Sie können eine Entität einer Tabelle zuordnen, ohne dass Schlüssel in der Datenbank definiert sind. Ich mache das in älteren SQL Server-Datenbanken. Die Tabelle muss jedoch einen Kandidatenschlüssel haben (einige Spalten, die tatsächlich eine eindeutige Kombination von Werten speichern). Das Konzept der Einheit beinhaltet die Vorstellung einer Art Identität . Stattdessen versuchen Sie in Ihrem Code, eine Entität ohne Identität zuzuordnen, was nicht möglich ist.

    
Apocatastasis 14.08.2013 21:01
quelle

Tags und Links