使用Entity FrameWork的连接字符串时报错

来源:互联网 发布:人工智能工程师招聘 编辑:程序博客网 时间:2024/06/07 00:44

我使用了两种方式:

第一次使用:

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 对象使用的基础数据源连接的访问。


0 0