NHibernateを使用して、データベースに行を一括挿入しています。挿入するデータ量が多いため、のIStatelessSession代わりに使用していISessionます。挿入するオブジェクトは、割り当てられたIDを使用します(つまり、hiloまたはGUIDは生成されません。一意のIDがオブジェクトに割り当てられます)。
私の問題は、Foo別のオブジェクト(say)への多対1の参照を持つオブジェクト(say )があることBarです。Bar最初にすべてのオブジェクトを挿入しますが、問題ありません。
オブジェクトを挿入したいときに問題が発生しFooます。各オブジェクトの一意の識別子は知っていますが、オブジェクトを挿入する前にオブジェクトにプロパティを設定するために、データベースからBar各オブジェクトを取得する必要はありません。BarFoo
ここで、簡単な例を示す良い機会かもしれません。
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オブジェクトを作成したいとします。以前にすべてのオブジェクトを追加したので、この識別子を持つオブジェクトがすでに存在することがわかります。 。IdBarBarBar
データベースからオブジェクトを再度Foo取得せずにオブジェクトを追加するにはどうすればよいですか?Bar