通常,使用dbContext
from Entity Framework 的代码如下所示:
using (var context = new SMDbContext())
{
context.StartTransaction();
var userCrudLogic = new UserEntityCrudLogic(context);
userCrudLogic.CreateUser(...);
context.SaveChanges();
context.Commit();
}
就我而言,我想在 Web 服务中使用它,而不是调用我的 CRUD 逻辑,我想调用业务逻辑来做一些验证和其他事情。之后的业务逻辑会调用 CRUD 逻辑。
我的问题是我不知道如何将上下文存储或传递给 CRUD 逻辑。最简单的方法是使用参数,但我不想在所有业务逻辑功能中都有不需要的参数。
我认为最好有一个类似“上下文管理器”的东西,它负责存储和提供当前请求的上下文。比我可以使用 IoC 或类似的东西在需要的地方加载上下文。
但是这样的“经理”应该是什么样子以及我必须如何/在哪里存储它?
如果我在 IoC 中将其注册为单例(in global.asax
),它将在所有请求中共享还是对每个请求都是唯一的?
对不起,如果我的问题看起来很愚蠢或类似的东西,但我以前从未做过这样的事情,现在想学习它们!所以我不想让它工作,我想知道最好的方法是什么。如果有什么不清楚的,请尽管问!
问候