我创建了一个实体框架文件。我的数据库名为MyDB。我的实体框架文件是MyDB.edmx,我使用现有的连接字符串(MyDBConnectionString)来生成edmx模型。
它创建了两个连接字符串:
MyDBEntities
MyDBContainer
这些是为了什么?它们看起来完全相同,并且都具有来自旧连接字符串的信息。
我还需要旧的连接字符串吗?
更新更多信息:
以下是连接字符串:
<add name="MyDBConnectionString" connectionString="Data Source=localhost;Initial Catalog=MyDB;Persist Security Info=False;User ID=MyDB;Password=MyDB" providerName="System.Data.SqlClient" />
<add name="MyDBEntities" connectionString="metadata=res://*/App_Code.MyDB.csdl|res://*/App_Code.MyDB.ssdl|res://*/App_Code.MyDB.msl;provider=System.Data.SqlClient;provider connection string="Data Source=localhost;Initial Catalog=MyDB;Persist Security Info=True;User ID=MyDB;Password=MyDB;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
<add name="MyDBContainer" connectionString="metadata=res://*/App_Code.MyDB.csdl|res://*/App_Code.MyDB.ssdl|res://*/App_Code.MyDB.msl;provider=System.Data.SqlClient;provider connection string="Data Source=localhost;Initial Catalog=MyDB;Persist Security Info=True;User ID=MyDB;Password=MyDB;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
我创建了第一个名为MyDBConnectionString的文件。然后,当我从数据库中生成edmx模型时,visual studio创建了MyDBEntities和MyDBContainer连接字符串。另外两个(实体和容器)是什么?我不再需要原始连接字符串了吗?
答案 0 :(得分:2)
您有三个connectionStrings。两个是EF connectionStrings,一个(MyDBConnectionString)用于ADO.NET。
您只需要一个EF connectionStrings。保留模型所指的那个。它将与模型本身具有相同的名称。
你也应该保留MyDBConnectionString。例如,如果要使用表单身份验证,则在配置SQL成员资格提供程序时,您将需要该connectionString。它们应该保持同步以指向同一个DB。