2009-12-22 5 views
0

J'ai deux entités, l'une appelée Site et l'autre appelée Assignment. Un site peut ou non avoir une assignation associée. Une affectation est uniquement associée à un site. En termes de C#, Site a une propriété de type Assignment pouvant contenir une référence nulle.Comment mapper une relation un-à-un optionnelle avec Fluent NHibernate?

J'ai deux tables par les mêmes noms dans la base de données. Le PK de la table d'affectation est également son FK de nouveau à la table de site (plutôt que le site ayant un FK nullable pointant sur l'affectation). Le SQL (avec des champs omis par souci de concision) est la suivante

CREATE TABLE Site(
    SiteId INT NOT NULL CONSTRAINT PK_Site PRIMARY KEY) 

CREATE TABLE Assignment(
    AssignmentId INT NOT NULL CONSTRAINT PK_Assignment PRIMARY KEY, 
    CONSTRAINT FK_Assignment_Site FOREIGN KEY (AssignmentId) REFERENCES Site (SiteId)) 

J'utilise le modèle de persistance automatique de Fluent NHibernate, que je pense que je vais devoir ajouter une dérogation à pour obtenir ce travail. Ma question est, comment puis-je cartographier cette relation? Mon schéma est-il correct pour ce scénario? Je peux changer le schéma si besoin est.

+0

pouvez-vous plaider Vous me donnez les définitions de la table? (Nom des tables, colonnes pertinentes, clés). Je ne comprends pas de votre description. –

+0

@Stefan, j'ai ajouté les instructions CREATE TABLE, espérons que cela rend le problème plus clair. – gilles27

Répondre

Questions connexes