实体框架,Asp.Net Identity并且不维护2个连接字符串

时间:2015-10-20 08:53:03

标签: asp.net entity-framework asp.net-mvc-4 entity-framework-6 asp.net-identity

我正在使用新的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=&quot;data source=.;initial catalog=MyDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

我不想在我的Web.Config中维护2个连接字符串。

我的EF DBContext生成的类看起来像这样:

public partial class MyDBEntities : DbContext
{
    public MyDBEntities()
        : base("name=MyDBEntities")
    {
    }

使用DefaultConnection连接字符串实例化MyDBEntities的最简单方法是什么?我知道EF当然需要一些额外的东西,我很欣赏有一些编程方式来构建连接。

我是否需要使用构造函数创建一个单独的分部类,以便在从数据库重新生成时不会被吹走?

谢谢!

1 个答案:

答案 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类的模板。