NHibernateを使用して、データベースに行を一括挿入しています。挿入するデータ量が多いため、のIStatelessSession
代わりに使用していISession
ます。挿入するオブジェクトは、割り当てられたIDを使用します(つまり、hiloまたはGUIDは生成されません。一意のIDがオブジェクトに割り当てられます)。
私の問題は、Foo
別のオブジェクト(say)への多対1の参照を持つオブジェクト(say )があることBar
です。Bar
最初にすべてのオブジェクトを挿入しますが、問題ありません。
オブジェクトを挿入したいときに問題が発生しFoo
ます。各オブジェクトの一意の識別子は知っていますが、オブジェクトを挿入する前にオブジェクトにプロパティを設定するために、データベースからBar
各オブジェクトを取得する必要はありません。Bar
Foo
ここで、簡単な例を示す良い機会かもしれません。
public class Foo {
// Unique identifier (assigned)
public virtual int Id { get; set; }
// Many-to-one reference to a Bar object
public virtual Bar Bar { get; set; }
}
public class Bar {
// Unique identifier (assigned)
public virtual int Id { get; set; }
}
(たとえば)4567のIDを持つオブジェクトを参照する(たとえば)1234の新しいFoo
オブジェクトを作成したいとします。以前にすべてのオブジェクトを追加したので、この識別子を持つオブジェクトがすでに存在することがわかります。 。Id
Bar
Bar
Bar
データベースからオブジェクトを再度Foo
取得せずにオブジェクトを追加するにはどうすればよいですか?Bar