1

我開始使用新的Asp.Net身份位的MVC Web應用程序,並將使用實體框架。實體框架,Asp.Net身份和不保留2個連接字符串

身份需要一個「正常」的連接字符串如下:

<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=&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的ConnectionString實例MyDBEntities最簡單的方法?我明白,EF當然需要一些額外的東西,我很欣賞有編程方式來建立連接。

我是否需要用構造函數創建一個單獨的部分類,以便在從DB重新生成時不會被吹走?

謝謝!

回答

1

您可以使用身份連接字符串,然後使用EntityConnectionStringbuilder(https://msdn.microsoft.com/en-us/library/system.data.entityclient.entityconnectionstringbuilder%28v=vs.110%29.aspx)爲您的實體連接構建連接字符串。您需要創建一個部分類,使您可以從該連接字符串實例化DbContext,而不是從名稱app.config或web.config中查找相應的連接字符串。或者你可以修改生成你的entitycontext類的模板。

+0

謝謝,我用這種方法去了 – ozz