2011-11-09 56 views
-1

還有另外一種方法可以讓我與實體框架之間的數據庫連接改爲使用web.config中的連接字符串。也許將參數傳遞給modelBuilder或DBContext?與實體框架連接的不同方式

回答

1

我相信你可以將參數中的連接字符串傳遞給DataContext。你有什麼嘗試?爲什麼要這樣做?檢查出this link

0

參見第三柱在這個線程:

http://social.msdn.microsoft.com/Forums/is/adodotnetdataservices/thread/2eb0e7a8-10c5-4c6c-80b8-23cb39161345

protected override AdventureWorksEntities CreateDataSource() 
    { 
     EntityConnection entityConnection = new EntityConnection(); 
     entityConnection.ConnectionString = "ConnectionStringConnecting to the databaseName"; 
     //set other proeprties on the entityConnection 
     AdventureWorksEntities dataContext = new AdventureWorksEntities(entityConnection); 
     return dataContext; 
    } 
1

這可能是有用的:在MyEntities的來源:

public partial class MyEntities : ObjectContext 
{ 
    #region Constructors 

    /// <summary> 
    /// Initialize a new MyEntities object. 
    /// </summary> 
    public MyEntities(string connectionString) : base(connectionString, "MyEntities") 
    { 
     this.ContextOptions.LazyLoadingEnabled = true; 
     OnContextCreated(); 
    } 

    /// <summary> 
    /// Initialize a new MyEntities object. 
    /// </summary> 
    public MyEntities(EntityConnection connection) : base(connection, "MyEntities") 
    { 
     this.ContextOptions.LazyLoadingEnabled = true; 
     OnContextCreated(); 
    } 
#endregion 
.... 

EDIT根據this Q &我的EF 4(4.1.10331.0)

,並在這裏看怎麼樣我的web.config爲EF:

<add name="MyEntities" connectionString="metadata=res://*/Models.MyModel.csdl|res://*/Models.MyModel.ssdl|res://*/Models.MyModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQLEXPRESS;Initial Catalog=MyDb;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> 

我希望這有助於更好

+0

Hi和感謝要求。你確定構造函數的重載是這樣的,它會引發錯誤。它說override是這個http://msdn.microsoft.com/en-us/library/system.data.entity.dbcontext.dbcontext(v=vs.103).aspx – Jorge