Frage

Für eine (sehr) lange Zeit, die ich habe für ein Beispiel auf der Suche, wie ein richtig zu implementieren, um one-to-one Mapping mit Fluent NHibernate.

Die meisten Ressourcen, die ich sagen finden:

  

Ich denke, meinen Sie eine many-to-one

Doch niemand gibt wirklich ein Beispiel dafür, wie richtig die Eins-zu-Eins-Beziehung zu implementieren.

So könnten Sie geben eine Eins-zu-Eins-Abbildung Beispiel mit Fluent NHibernate

Hinweis: Ich bin in Menschen nicht interessiert sagen „was Ihr Modell ist, könnten Sie eigentlich brauchen HasMany “. Nein, danke, ich brauche einfach ein one-to-one Beispiel.

Um genauer zu sein, Ich kenne die Syntax . Das ist das einzige, was ich durch die Suche von mir finden konnte. Was ich suche ist ein vollständigeres Beispiel, darunter einen ((sehr) einfach) Datenbank-Setup und das gesamten Mapping aller Einheiten, die in der Beziehung teilnehmen, was ich denke, würde vernünftige Größe für Stack-Überlauf hat.

War es hilfreich?

Lösung

Ich habe mein Problem gelöst.

Ich habe auch einen etwas ausführlichen Artikel über dieses Problem geschrieben, dass finden Sie unter: http://brunoreis.com/tech/fluent-nhibernate-hasone-how-implement-one-to-one-relationship/index.html

In Kürze erhalten Sie ein Szenario finden, in denen wir eine Eins-zu-Eins-Beziehung wollen, wie das Datenbankschema wir möchten es, den Code des Modells, wie es NHibernate Anforderungen sein muss gerecht zu werden, und das Fluent Mapping das entspricht der Situation.

Andere Tipps

these are the two classes.

public class A
{
  public virtual int Id {get;set;}
  public virtual string P1 {get;set;}
  public virtual string P2 {get;set;}
  public virtual string P3 {get;set;}
  public virtual B child { get; set; }
}

public class B
{
  public virtual int Id {get;set;}
  public virtual string P4 {get;set;}
  public virtual string P5 {get;set;}
  public virtual string P6 {get;set;}
  public virtual A parent;
}     

Dies sollte in der fließenden Konfiguration hinzugefügt werden.

public AMap()
    {
      /* mapping for id and properties here */
      HasOne(x => x.child)
          .Cascade.All();
    }

    public BMap()
    {
      /* mapping for id and properties here */
      References(x => x.parent)
          .Unique();
    }

Dies ist das beste Beispiel ich habe gesehen. Hoffentlich ist es Ihren Bedürfnissen entspricht.

HasOne(x => x.Prop)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top