0

私はこのようなモデルクラスを持っています、

 Class Student
{
    private virtual int StudentId;  --> id column
    private virtual int StudentName;
}

LabRepositoryLibraryRepositoryという 2 つのリポジトリがあり、どちらにも Student 用のテーブルがあります。

問題: LabRepository から Student オブジェクトを取得し、同じモデルを使用して LibraryRepository に挿入しようとすると失敗するID が 1 の Student レコードがライブラリにないため、Update クエリは失敗します。

ここでサンプルを示しましたが、実際のモデル クラスは複雑で、内部に多数の ID 列が構成されています。あるリポジトリからモデル オブジェクトを取得し、ID を気にせずに同じものを他のリポジトリに挿入する方法はありますか?列?

4

1 に答える 1

2

クラス名以外の明示的に記述された EntityName を使用して Student を 2 回マッピングするときに実行できます。

idgeneration を assigned に変更し、参照をマップします

public LibraryStudentMap()
{
    EntityName("LibraryStudent");
    Table("LibraryStudents");

    Id(x => x.StudentId).GeneratedBy.Assigned();
}
public LabStudentMap()
{
    EntityName("LabStudent");
    Table("LabStudents");

    Id(x => x.StudentId).GeneratedBy.Assigned();
}

public LibraryMap()
{
    References(x => x.Student).EntityName("LibraryStudent");
}

public LabMap()
{
    References(x => x.Student).EntityName("LabStudent");
}

それからそれは可能であるべきです

lab.Student = library.Student;
session.SaveOrUpdate(lab);
于 2013-03-15T07:46:58.413 に答える