SubSonic SimpleRepository で AddMany 関数を使用している場合、どうすればオブジェクトに ID を戻すことができますか? 使用した後でも、すべてのオブジェクトが Id=0 になります。
SimpleRepository repository = new SimpleRepository(ConnectionStringName);
repository.AddMany<T>(insertList);
ソースを見ると、次のことがわかります。
public void AddMany<T>(IEnumerable<T> items) where T : class, new()
{
if (_options.Contains(SimpleRepositoryOptions.RunMigrations))
{
Migrate<T>();
}
BatchQuery batch = new BatchQuery(_provider);
foreach(var item in items)
{
batch.QueueForTransaction(item.ToInsertQuery(_provider));
}
batch.ExecuteTransaction();
}
ここでそのテーブルに最後に挿入された Id のバッチ選択を行うのはどうですか? それは間違ったIDを返す可能性がありますか? 私はいくつかのコードを書き留めて戻ってきます:)
実際の問題
問題は、別の行 (別のテーブル) に挿入された ID を fk として使用するのが好きなことです。バッチ挿入を使用して 2 つの異なる種類の行を追加し、最後に挿入された ID に fk-column を設定する方法があるかもしれません。他の行。少し複雑ですが、要点はわかると思います。
Insert User
Insert UserAccount -> Set UserAccount.fk_UserId to latest id inserted in User
Insert User
Insert UserAccount -> Set UserAccount.fk_UserId to latest id inserted in User
バッチとしてなど..それは可能ですか?これは、10,000 行以上× 2 になる可能性があります。