升级到AspNet 5 RC1-update1后对SqlServerDbContextOptionsBuilder的调用

本文关键字:后对 SqlServerDbContextOptionsBuilder 调用 RC1-update1 AspNet | 更新日期: 2023-09-27 18:25:42

我想将我的项目从asp.net beta-7升级到asp.net 5 RC1-update-1,但我在startup.cs中遇到了两个错误:

public void ConfigureServices(IServiceCollection services)
{
   // Add Entity Framework services to the services container.
   services.AddEntityFramework()
            .AddSqlServer()
            .AddDbContext<ApplicationDbContext>(options =>
           options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));
}

首先,Visual Studio告诉我DbContextOptionsBuilder类型是在未引用的程序集中定义的。在这种情况下,参考为EntityFramework.Core version 7.0.0.0参考

其次,似乎有一个模棱两可的调用:

Ambiguos调用:

Microsoft.Data.Entity.Infrastructure.SqlServerDbContextOptionsBuilder.UseSqlServer(
this Microsoft.Data.Entity.SqlServerDbContextOptionsBuilder, string)
Microsoft.Data.Entity.SqlServerDbContextOptionsBuilder.UseSqlServer(
this Microsoft.Data.Entity.SqlServerDbContextOptionsBuilder, string)

我的项目.json:

{
"webroot": "wwwroot",
"userSecretsId": "--removed--",
"version": "1.0.0-*",
"dependencies": {
    "EntityFramework.Core": "7.0.0-rc1-final",
    "EntityFramework.Commands": "7.0.0-rc1-final",
    "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
    "EntityFramework.SqlServer": "7.0.0-beta7",
    "Microsoft.AspNet.Authentication.Cookies": "1.0.0-rc1-final",
    "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-rc1-final",
    "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-final",
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final",
    "Microsoft.Extensions.CodeGenerators.Mvc": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc1-final"
},
"commands": {
    "web": "Microsoft.AspNet.Server.Kestrel",
    "ef": "EntityFramework.Commands"
},
"frameworks": {
    "dnx451": { },
    "dnxcore50": { }
},
"exclude": [
    "wwwroot",
    "node_modules",
    "bower_components"
],
"publishExclude": [
    "node_modules",
    "bower_components",
    "**.xproj",
    "**.user",
    "**.vspscc"
],
"scripts": {
    "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ]
}
}

升级到AspNet 5 RC1-update1后对SqlServerDbContextOptionsBuilder的调用

您在当前的project.json中似乎有一个重复的条目,尽管这并不明显,因为dll名称已经更改:

过去的"EntityFramework.SqlServer"现在是:"EntityFramework.MicrosoftSqlServer"

所以只需删除

"EntityFramework.SqlServer": "7.0.0-beta7",

你应该很乐意去。