.net标准2.0库中的EF Core DbContext

时间:2017-09-24 20:24:17

标签: c# asp.net .net entity-framework .net-standard



我正在使用我的.Net Core 2.0应用程序 - 我已经设法将它分成几个项目,但......
我遇到了问题:如何在另一个程序集中使用DbContext - .net标准2.0库。

在我的ConfigureServices中:

services.AddDbContextPool<MyContext>(options => options.UseSqlServer(Configuration.GetConnectionString("MsSql"), sqlOption => sqlOption.MigrationsAssembly("NetStandardAssemblyName")));


我收到此错误消息:
无法创建“GamgooContext”类型的对象。将“IDesignTimeDbContextFactory”的实现添加到项目中,或者查看https://go.microsoft.com/fwlink/?linkid=851728以获取在设计时支持的其他模式。

我在这里找到了一些解决方案:
https://codingblast.com/entityframework-core-idesigntimedbcontextfactory/
  - 但在我的情况下它不起作用。我不想从我的.net核心应用程序复制配置和连接字符串。

我试图在包含上下文的项目中添加多个目标框架,就像在互联网上的一些其他解决方案中建议的那样,但每次都会崩溃我的Visual Studio。

1 个答案:

答案 0 :(得分:1)

事实证明,您必须实现IDesignTimeDbContextFactory,或者必须更新配置应用程序的方式(使用.net core 2.0的新约定),将大部分配置从Startup类移至Program类您可以在哪里构建IWebHost,因为:

创建迁移时.Net Core 2.0实际上启动了您的应用程序
- 然后搜索IDesignTimeDbContextFactory以及是否找不到
- 它搜索IWebHost配置
然后它使用其中一个做一些ef核心魔术脚手架和迁移。