Entity Framework、Asp.Net 标识且不维护 2 个连接字符串
Entity Framework, Asp.Net Identity and not maintaining 2 connection strings
我正在启动一个 MVC 网络应用程序,使用新的 Asp.Net 标识位,并将使用 Entity Framework。
身份需要一个 "normal" 连接字符串,如下所示:
<add name="DefaultConnection" connectionString="data source=.;initial catalog=MyDB;integrated security=True;" providerName="System.Data.SqlClient" />
和 Entity Framework 开箱即用,连接字符串如下:
<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 class 如下所示:
public partial class MyDBEntities : DbContext
{
public MyDBEntities()
: base("name=MyDBEntities")
{
}
使用 DefaultConnection 连接字符串实例化 MyDBEntities 的最简单方法是什么?我知道 EF 当然需要一些额外的东西,我很欣赏有编程的方式来建立连接。
我是否需要使用构造函数创建一个单独的部分 class,以便当我从数据库重新生成时它不会被吹走?
谢谢!
您可以使用身份连接字符串,然后使用 EntityConnectionStringbuilder (https://msdn.microsoft.com/en-us/library/system.data.entityclient.entityconnectionstringbuilder%28v=vs.110%29.aspx) 为您的实体连接构建连接字符串。您需要创建一个部分 class,它允许您从该连接字符串实例化 DbContext 而不是命名的连接字符串,它只会从 app.config 或 web.config 中查找相应的连接字符串。或者您可以修改生成实体上下文的模板 class.
我正在启动一个 MVC 网络应用程序,使用新的 Asp.Net 标识位,并将使用 Entity Framework。
身份需要一个 "normal" 连接字符串,如下所示:
<add name="DefaultConnection" connectionString="data source=.;initial catalog=MyDB;integrated security=True;" providerName="System.Data.SqlClient" />
和 Entity Framework 开箱即用,连接字符串如下:
<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 class 如下所示:
public partial class MyDBEntities : DbContext
{
public MyDBEntities()
: base("name=MyDBEntities")
{
}
使用 DefaultConnection 连接字符串实例化 MyDBEntities 的最简单方法是什么?我知道 EF 当然需要一些额外的东西,我很欣赏有编程的方式来建立连接。
我是否需要使用构造函数创建一个单独的部分 class,以便当我从数据库重新生成时它不会被吹走?
谢谢!
您可以使用身份连接字符串,然后使用 EntityConnectionStringbuilder (https://msdn.microsoft.com/en-us/library/system.data.entityclient.entityconnectionstringbuilder%28v=vs.110%29.aspx) 为您的实体连接构建连接字符串。您需要创建一个部分 class,它允许您从该连接字符串实例化 DbContext 而不是命名的连接字符串,它只会从 app.config 或 web.config 中查找相应的连接字符串。或者您可以修改生成实体上下文的模板 class.