当我将 AddMany 函数与 SubSonic SimpleRepository 一起使用时,如何将 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,也许有一种方法可以使用批量插入来添加两种不同类型的行并将 fk-column 设置为最后插入的 id另一排。那里有点复杂,但我想你明白了:
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
等等作为一个批次..这可能吗?这可能是 10k 或更多行乘以 2。