我有两个项目的解决方案:ASP.NET 5 Web项目和带有EF6的类库。在旧的ASP.NET 4世界中,我具有带有构造函数的DbContext类:
public MyModel() : base("name=MyModel") { }
然后在Web应用程序中,我在web.config中有连接字符串。我还有一个DefaultConnection值,用于基于成员身份的标识。
现在,我尝试进入ASP.NET5。默认连接字符串以“新”方式工作(我从头开始创建身份,最终无论如何我都不会使用基于DB的身份验证)-我正在正确地进行身份验证。默认连接字符串在appsettings.json中。但是,无论我尝试了什么,都会遇到错误No connection string named 'MyModel' could be found in the application config file
。我尝试按照此处的建议更改name=MyModel
为name=Data:AAOModel:ConnectionString
,但新值仍然出现相同的异常。
appsettings.json的相关部分是这样的(我意识到我可以拆分为config.json,但是没有任何区别):
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\\MSSQLLocalDB;Database=..."
},
"MyModel": {
"ConnectionString": "Server=dbserver;Database=BusinessDB..."
}
}
我也试图利用ConfigureServices()
在启动IdentityContext在脚手架代码和描述中添加的方式在这里。但是,我注意到IdentityContext是从派生的,Microsoft.Data.Entity
而MyModel是从System.Data.Entity派生的,而services.AddDbContext <>()不喜欢它。
目前,我感觉到我尝试了Google可以购买的所有排列方式。将ASP.NET 5与EF6类库一起使用的正确方法是什么?
您有两个相当简单的选择:
1:开始使用Entity Framework 7。
2:创建上下文后,可以使用Asp.net配置从json配置中提取值,将整个连接字符串传递给构造函数/基础。
public MyModel(string connectionString) : base(connectionString) { }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句