我使用了两种方式:
第一次使用:
DB_HlgHealth_DevEntities context = new DB_HlgHealth_DevEntities();
{
SqlConnection con = new System.Data.SqlClient.SqlConnection();
con.ConnectionString = context.Connection.ConnectionString;
........
}
结果报错: 不支持关键字: “name”。
因为取出了name,而不是connectionString: con.ConnectionString ="name= DB_HlgHealth_DevEntities";
第二次使用:
DB_HlgHealth_DevEntities context = new DB_HlgHealth_DevEntities();
{
SqlConnection con = new System.Data.SqlClient.SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["DB_HlgHealth_DevEntities"].ConnectionString; //取自于web.conffg
........
}
结果报错:不支持关键字: “metadata”。
因为Entity FrameWork创建的web.config的连接语句如下:
metadata=res://*/DBModel.csdl|res://*/DBModel.ssdl|res://*/DBModel.msl;provider=System.Data.SqlClient;provider connection string="data source=......;multipleactiveresultsets=True;App=EntityFramework"
最后使用了:
DB_HlgHealth_DevEntities context = new DB_HlgHealth_DevEntities();
{
SqlConnection con = new System.Data.SqlClient.SqlConnection();
con.ConnectionString = (context.Connection as EntityConnection).StoreConnection.ConnectionString;
........
}
EntityConnection.StoreConnection在MSDN中的解释:
提供对 EntityConnection 对象使用的基础数据源连接的访问。