2016-05-02 16 views
0

Ich kann kein Beispiel für die Aktualisierung eines verschachtelten Objekts in einer N-zu-eins-Situation finden. Es ist ziemlich klar, wie das Mapping bei einem Fetch funktioniert. und ich spreche nicht von der Aktualisierung einer Sammlung verschachtelter Objekte, nur einer. So folgendes Beispiel gegeben:So aktualisieren Sie verschachtelte Objekte in NPOco

public class Student 
{ 
    public int StudentId { get; set; } 
    public string Name { get; set; } 
    [ResultColumn] 
    public School CurrentSchool { get; set; } 
} 

public class School 
{ 
    public int SchoolId { get; set; } 
    public string Name { get; set; } 
} 

In der Datenbank führt die Tabelle Student eine CurrentSchool Spalte, die die ID eines Datensatzes in der Schule Tabelle ist.

Ich aktualisiere das Schulobjekt nicht selbst, sondern ordne den Schüler einem anderen zu. Dies ist für eine Abfrage in Ordnung, aber wenn ich das CurrentSchool-Objekt auf dem Student ändere und mit db.Update (studentObject) speichere, wird der Fremdschlüssel nicht aktualisiert.

Antwort

1

Nachdem ich durch die Quelle gegangen bin, fand ich eine ReferenceType Eigenschaft auf der NPoco.ColumnInfo Klasse. Auf der Suche nach diesem, gibt es Dokumentation im NPOco-Wiki unter Version 3 ->Beziehungen (https://github.com/schotime/NPoco/wiki/Version-3#relationships).

Wenn ich hinzufügen, in:

[NPoco.Reference(NPoco.ReferenceType.Foreign, ColumnName = "SchoolId", ReferenceMemberName = "SchoolId")] 
public School CurrentSchool { get; set; } 

dann der Fremdschlüssel-Beziehung gespeichert, wenn das Student-Objekt in der DB beibehalten wird.

Verwandte Themen