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) {} } 给它一展身手。 –