asp.net-core – 为EF,AddDbContext或AddEntityFramework添加服务

services.AddDbContext和services.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,我看到很多已经清理/重命名/简化,我想这很好.

最佳答案 我引用:当您希望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

点赞