为EF,AddDbContext或AddEntityFramework

时间:2016-07-22 09:41:26

标签: asp.net-core entity-framework-core

services.AddDbContextservices.AddEntityFramework().AddDbContext之间有区别吗?他们的展位看起来在core-1.0.0下有效。

选择A

services.AddDbContext<DbContext>(options => options.UseSqlServer(connection));

选择B

services.AddEntityFramework()
    .AddDbContext<DbContext>(options =>
        options.UseSqlServer(connection));

还注意到.AddSqlServer()看起来已经消失了。上次我在核心上做了一些工作是RC2,我看到很多已经清理/重命名/简化了,我觉得这很好。

1 个答案:

答案 0 :(得分:2)

我引用:当您希望Entity Framework从外部IServiceProvider解析它使用的服务时,您只需要使用此功能(AddEntityFramework)。 如果您没有使用外部IServiceProvider,Entity Framework将负责创建它所需的服务。

请参阅:https://github.com/aspnet/EntityFramework/blob/dev/src/Microsoft.EntityFrameworkCore/Infrastructure/EntityFrameworkServiceCollectionExtensions.cs

我引用:故意在此命名空间中,因为这是供其他关系提供程序而不是顶级应用程序开发人员使用。

请参阅:https://github.com/aspnet/EntityFramework/blob/94138e66a56693395e5e323a8d4b666bbcb07bf7/src/Microsoft.EntityFrameworkCore/Infrastructure/EntityFrameworkServiceCollectionExtensions.cs