【问题标题】:Entity Framework, Asp.Net Identity and not maintaining 2 connection strings实体框架、Asp.Net 身份和不维护 2 个连接字符串
【发布时间】:2015-10-20 08:53:03
【问题描述】:

我正在使用新的 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 当然需要一些额外的东西,我很欣赏建立连接的编程方式。

我是否需要使用构造函数创建一个单独的部分类,这样当我从 DB 重新生成时它不会被吹走?

谢谢!

【问题讨论】:

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


    【解决方案1】:

    您可以使用身份连接字符串,然后使用 EntityConnectionStringbuilder (https://msdn.microsoft.com/en-us/library/system.data.entityclient.entityconnectionstringbuilder%28v=vs.110%29.aspx) 为您的实体连接构建连接字符串。您需要创建一个允许您从该连接字符串实例化 DbContext 的分部类,而不是仅从 app.config 或 web.config 中查找相应连接字符串的命名类。或者您可以修改生成实体上下文类的模板。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多