我已经将与EF相关的代码放在类库中,并在asp.net webapi项目中使用它。然而,在我的webapi项目中,我仍然有以下代码。
services.AddDbContext<MyOwnDbContext>(
ops => ops.UseSqlite(connection, optionsBuilder => optionsBuilder.MigrationsAssembly("MyProject.API")));是否有方法将'MyOwnDbContext: DbContext‘类与webapi项目完全分离(使用工厂或接口)。还是这是不必要的担忧?我只是不想在两个项目中使用EF相关的库。
发布于 2018-05-22 10:26:15
这是一个不可忽视的问题。将其放入应用程序(Startup.cs)的根中。这里的一切都是硬连接的(依赖注入容器、上下文、日志记录、.)。
事实上,没有比这更好的地方了。因为上下文本身的配置与应用程序级别以下的任何层无关。DAL/存储库只需使用已经配置的上下文就可以了。
发布于 2018-05-22 10:14:53
我不会使用它,因为您仍然需要在entry项目中安装,这样库才能使用它(或者通过手动复制文件来破解整个过程,但我们不要进入这个问题)。
然而,这正是我在最近的一个项目中所做的,我希望将所有的服务都放在一个单独的地方,与Startup类不同:
Microsoft.Extensions.DependencyInjection安装到希望使用DbContext的项目中。就像这样,你赢的不多,但你可以像我刚开始提到的那样继续前进。
https://stackoverflow.com/questions/50464805
复制相似问题