是否可以为控制器创建属性,它通过一个事务将所有查询执行到数据库中?
Is it possible to create Attribute for controller, which executes all query into db via one transaction?
我的意思是下一种情况。这个例子有点难看,但它正是我想要的。
[MyAttribute]
public MyController
{
[Post]
public void CoolStuff(int id, Item item)
{
User user = _userRepository.Get(id);
Bucket bucket = _bucketRepository.Get(user.bucketId);
bucket.Add(item);
_bucketRepository.Save(bucket);
}
}
数据库中有 3 个问题。我希望 [MyAttribute] 在事务中收集这些查询并执行。你有什么想法吗?
看看ActionFilterAttribute。您可以从 ActionFilterAttribute 派生自定义属性并覆盖两个方法:
OnActionExecuting - 打开交易
OnActionExecuted - 提交或回滚事务
希望对您有所帮助!
我的意思是下一种情况。这个例子有点难看,但它正是我想要的。
[MyAttribute]
public MyController
{
[Post]
public void CoolStuff(int id, Item item)
{
User user = _userRepository.Get(id);
Bucket bucket = _bucketRepository.Get(user.bucketId);
bucket.Add(item);
_bucketRepository.Save(bucket);
}
}
数据库中有 3 个问题。我希望 [MyAttribute] 在事务中收集这些查询并执行。你有什么想法吗?
看看ActionFilterAttribute。您可以从 ActionFilterAttribute 派生自定义属性并覆盖两个方法:
OnActionExecuting - 打开交易
OnActionExecuted - 提交或回滚事务
希望对您有所帮助!