.AddDbContext方法在哪里?

时间:2017-03-04 18:22:41

标签: asp.net-core

它所说的任何地方都称呼服务.AddDbContext<>方法,但在ConfigureServices(IServiceCollection服务)方法中无法识别 我做错了什么?

2 个答案:

答案 0 :(得分:6)

您必须首先引用正确的包,这取决于您要使用的EF Core提供程序。

Microsoft.EntityFrameworkCore.SqlServer用于SQL Server,Microsoft.EntityFrameworkCore.Sqlite用于SQLite,Microsoft.EntityFrameworkCore.InMemory用于内存(仅用于测试)。

这些是官方开箱即用的提供商。 PostgreSQL,MySQL等也有第三方提供商。文档提供商列出了可用的第三方提供商here

同样取决于提供者,您可能还需要声明某个命名空间。内置提供程序在Microsoft.Extension.DependencyInjection命名空间中声明,因此您需要在using Microsoft.Extension.DependencyInjection;的顶部添加Startup.cs

其他提供程序(例如Oracle的MySQL提供程序)使用MySQL.Data.EntityFrameworkCore.Extensions命名空间,因此您需要使用using MySQL.Data.EntityFrameworkCore.Extensions;

来定义它

答案 1 :(得分:0)

注意在实际编写using时,您只需要引用Microsoft.EntityFrameworkCore省略特定的包名称。提供它似乎会引发错误。