gpt4 book ai didi

servicestack - 在事务中创建用户

转载 作者:行者123 更新时间:2023-12-04 07:41:29 25 4
gpt4 key购买 nike

像这样创建用户时:

using var trans = Db.BeginTransaction();
AuthRepository.CreateUserAuth(newUser, request.Password);
AuthRepository.AssignRoles(created, new List<string> { request.role });
//.. do other stuff
throw new Exception("other code may throw this");
trans.Commit();
Auth repo 有自己的连接,所以它不是交易的一部分。这意味着,如果我的代码失效,我最终会遇到一个不需要的用户。
有什么方法可以将事务与 AuthRepository 一起使用,还是只能手动写入用户和角色表?我在手动保存时找不到在文档中创建密码哈希的例子,有没有例子?

最佳答案

您不能在事务中使用现有的 Auth Repository API,因为每个 API 都使用自己的数据库连接。
如果你愿意,你可以在 OrmLiteAuthRepository.cs 中实现那些 OrmLite Auth Respository APIs并将它们移动到您的方法中,以便它们都使用相同的数据库连接 + 事务。
还要注意使用 Transactions in OrmLite你应该使用 OpenTransaction()相反,例如:

using (var dbTrans = db.OpenTransaction())
{
}

关于servicestack - 在事务中创建用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67429313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com