1

ネストされたオブジェクトを多対 1 の状況で更新する例が見つかりません。Fetch でマッピングがどのように機能するかは明らかです。ネストされたオブジェクトのコレクションを更新することについて話しているのではなく、1 つだけです。したがって、次の例が与えられます。

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; }
}

データベースの Student テーブルには、School テーブルのレコードの ID である CurrentSchool 列があります。

School オブジェクト自体を更新するのではなく、学生を別のオブジェクトにマッピングします。これはクエリでは問題ありませんが、Student の CurrentSchool オブジェクトを変更して db.Update(studentObject) で保存すると、外部キーが更新されません。

4

1 に答える 1

1

ソースを調べてみると、NPoco.ColumnInfo クラスに ReferenceType プロパティがあることがわかりました。これを検索すると、バージョン 3 -> Relationships ( https://github.com/schotime/NPoco/wiki/Version-3#relationships )の下の NPoco wiki にドキュメントがあります。

追加すると:

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

次に、Student オブジェクトが DB に永続化されるときに、外部キー関係が保存されます。

于 2016-05-03T01:58:40.573 に答える