我正在使用新的Asp.Net Identity位启动MVC Web应用程序,并将使用实体框架。
身份需要"正常"连接字符串如下:
<add name="DefaultConnection" connectionString="data source=.;initial catalog=MyDB;integrated security=True;" providerName="System.Data.SqlClient" />
和实体框架开箱即用,其连接字符串如下:
<add name="MyDBEntities" connectionString="metadata=res://*/Data.MyApp.csdl|res://*/Data.MyApp.ssdl|res://*/Data.MyApp.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=MyDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
我不想在我的Web.Config中维护2个连接字符串。
我的EF DBContext生成的类看起来像这样:
public partial class MyDBEntities : DbContext
{
public MyDBEntities()
: base("name=MyDBEntities")
{
}
使用DefaultConnection连接字符串实例化MyDBEntities的最简单方法是什么?我知道EF当然需要一些额外的东西,我很欣赏有一些编程方式来构建连接。
我是否需要使用构造函数创建一个单独的分部类,以便在从数据库重新生成时不会被吹走?
谢谢!
答案 0 :(得分:1)
您可以使用identity connectionstring,然后使用EntityConnectionStringbuilder(https://msdn.microsoft.com/en-us/library/system.data.entityclient.entityconnectionstringbuilder%28v=vs.110%29.aspx)为您的实体连接构建连接字符串。您需要创建一个允许您从该连接字符串实例化DbContext的部分类,而不是从app.config或web.config查看相应连接字符串的命名连接字符串。或者您可以修改生成entitycontext类的模板。