我正在经历这个例子: http://stephenwalther.com/archive/2015/01/17/asp-net-5-and-angularjs-part-4-using-entity-framework-7
我正在努力解决这个代码问题:
using Microsoft.AspNet.Builder;
using Microsoft.Framework.DependencyInjection;
using Microsoft.Data.Entity;
using creaservo.com.Models;
using Microsoft.Framework.ConfigurationModel;
using Microsoft.AspNet.Hosting;
namespace creaservo.com
{
public class Startup
{
public Startup(IHostingEnvironment env)
{
// Setup configuration sources.
Configuration = new Configuration()
.AddJsonFile("config.json")
.AddEnvironmentVariables();
}
public IConfiguration Configuration { get; set; }
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
// Register Entity Framework
services.AddEntityFramework(Configuration)
.AddSqlServer()
.AddDbContext<MoviesAppContext>();
}
public void Configure(IApplicationBuilder app)
{
app.UseMvc();
}
}
}
问题在于
// Register Entity Framework
services.AddEntityFramework(Configuration)
.AddSqlServer()
.AddDbContext<MoviesAppContext>();
我收到构建错误:
Error CS1501 No overload for method 'AddEntityFramework' takes 1 arguments
我在很多其他例子中看到了对配置使用相同的参数。
不知道,有什么不对......
答案 0 :(得分:3)
看起来您正在使用的教程正在使用旧版本的EF7框架。 EntityFramework 7 beta 4不再接受AddEntityFramework
的任何参数。看起来beta 5仍然在同一轨道上。
我相信你所寻找的是:
// Register Entity Framework
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<MoviesAppContext>(options =>
{
options.UseSqlServer(Configuration.Get("Data:DefaultConnection:ConnectionString"));
});
这简化了配置文件中所需的结构,因为MoviesAppContext
只需要连接字符串,而不是EntityFramework
和Data
元素。