0
我想初始化一個實體對象(ADO.NET EF對象),但它不允許我選擇我想要使用的連接字符串。我需要更改連接字符串,以便爲用戶提供不同的訪問級別。實體框架對象不允許連接字符串作爲參數傳遞
實體對象中沒有重寫,只是無參數的構造函數。
如果任何人都可以給我任何指針,很感激。
我想初始化一個實體對象(ADO.NET EF對象),但它不允許我選擇我想要使用的連接字符串。我需要更改連接字符串,以便爲用戶提供不同的訪問級別。實體框架對象不允許連接字符串作爲參數傳遞
實體對象中沒有重寫,只是無參數的構造函數。
如果任何人都可以給我任何指針,很感激。
如果你已經使用了設計師生成的.edmx文件,你將有一些象下面這樣:
public MyEntities() : base("name=MyEntities", "MyEntities")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}
這將通過默認情況下,從您的配置文件中的連接字符串。
,你可以在這種情況下,做的是設置連接字符串
public partial class MyEntities
{
partial void OnContextCreated()
{
//Dynamically Building a Connection String
this.Connection.ConnectionString = "myconnectionstring";
}
}
請記住,雖然,這將首先使用基本構造拉從配置連接字符串,然後用您的自定義版本設置,基本上覆蓋了連接字符串。當你總是想要一個默認的連接字符串時,這通常是很好的。
如果你想要更多的控制另一種選擇,是通過在連接字符串中通過構造如下圖所示:
public partial class MyEntities
{
public MyEntities(string connectionString) :
base(connectionString,"MyEntities")
{
this.OnContextCreated();
}
}
現在要傳遞的連接字符串中下降到基類,這是它將使用的唯一一個。不過這意味着你每次都需要提供這個。
希望這有助於...
我跟着你的提示。開創了部分類一個新的文件,並添加以下代碼:公共部分類實體 { 公共實體(字符串的connectionString): 基地(的connectionString) {} } 給它一展身手。 –