外部キー エンティティのチェーンにいくつかのエンティティをバッチ挿入しようとしています。エンティティ ID は ID としてマップされます。
私は A のリストを持ち、B をプロパティとして持ち、B は C をプロパティとして持っています。
データベースに変更をコミットしようとすると、「オブジェクトが保存されていない一時インスタンスを参照しています - フラッシュする前に一時インスタンスを保存するか、プロパティのカスケード アクションを自動保存するものに設定してください。」というエラーが表示されます。
class Program
{
static viod Main (string[] args)
{
var list = new List<A>{
new A{
B = new B{
C = new C{
Name = "test";
}
}
},
new A{
B = new B{
C = new C{
Name = "test";
}
}
},
};
foreach(var a in list)
{
statelessSession.Insert(a);
//session.Save(a); // I have tried this as well, does not work neither.
}
transaction.Commit();
}
}
public class A : BaseEntity
{
public virtual B B{get; set;}
}
public class B : BaseEntity
{
public virtual C C{get; set;}
}
public class C : BaseEntity
{
public virtual string Name{get; set;}
}
public class BaseEntity
{
public virtual long ID {get; set;}
}