是否可以在 mvc 中使用实体客户端连接字符串 sql 连接存储过程?
Is it possible to use Entity client connection string to sql connection of store procedure in mvc?
您好,我想知道如何使用实体客户端连接字符串 sql 连接存储过程。现在我使用 Ado.net 连接一个数据库作为 Edmx 文件。
这样我就可以获得一些默认的连接字符串 web.config file.Now 我正在数据库中创建一个存储过程并将该存储过程连接为 edmx 文件。
然后我在一个控制器中使用了它。现在我必须声明 sql 连接来执行像
这样的存储过程
SqlConnection conn = new SqlConnection("DataSource")
只有我在使用同一个数据库名称。因此,与其每次都编写连接代码,不如在部署时调用我的 web.config 连接字符串 name.So
那时我的在线项目我将更改 web.config 文件中的 dbname。这样我就可以在任何地方调用此连接字符串后在任何地方使用。
现在我想要的是如何使用 Entity client connection string to sql connection 。在 mvc 中是否可行。
我的web.config文件连接字符串
<Connectionstring>
<add name="COSECEntities" connectionString="metadata=res://*/Models.dbCOSEC.csdl|res://*/Models.dbCOSEC.ssdl|res://*/Models.dbCOSEC.msl;provider=System.Data.SqlClient;provider connection string="data source=ADMIN-PC;initial catalog=COSEC;user id=sa;password=sql;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
我的控制器(异常)
public class UserMasterController : Controller
{
private COSECEntities db = new COSECEntities();
SqlConnection conn =new SqlConnection("Data Source=ADMIN-PC;Initial Catalog=COSEC;User ID=sa;Password=sql;");
}
现在如果我更改 web.config 文件中的数据库名称意味着我还必须更改我写的 sql 连接位置 too.But 如果我调用该 Web 配置文件连接
string name表示改一处就够了
我试图在我的控制器中调用那个 web.config 文件连接,但我得到的错误是不能使用实体客户端连接字符串到 sql connection.Code 下面。
异常控制器
public class UserMasterController : Controller
{
private COSECEntities db = new COSECEntities();
string strcon = ConfigurationManager.ConnectionStrings["COSECEntities"].ConnectionString;
SqlConnection con = new SqlConnection(strcon);
con.Open();
}
如果我在 web.config 文件中将提供商名称从实体客户端更改为 sql 客户端,则意味着另一个操作停止工作。
我已经尽力解释我的问题了。任何人了解我的问题并帮助我解决这个问题
谢谢..
您可以重用 Entity Framework 本身使用的连接,如下所示:
using (var db = new COSECEntities()) {
SqlConnection con = (SqlConnection) db.Database.Connection;
}
如果出于某种原因需要创建新连接,您可以重复使用连接字符串:
using (var db = new COSECEntities()) {
using (SqlConnection con = new SqlConnection(db.Database.Connection.ConnectionString)) {
}
}
如果您无权访问 entity framework 上下文或不想创建它,您可以从 entity framework 连接字符串中获取提供程序连接字符串,如下所示:
var cs = ConfigurationManager.ConnectionStrings["COSECEntities"].ConnectionString;
var providerCs = new EntityConnectionStringBuilder(cs).ProviderConnectionString;
SqlConnection con = new SqlConnection(providerCs);
您好,我想知道如何使用实体客户端连接字符串 sql 连接存储过程。现在我使用 Ado.net 连接一个数据库作为 Edmx 文件。 这样我就可以获得一些默认的连接字符串 web.config file.Now 我正在数据库中创建一个存储过程并将该存储过程连接为 edmx 文件。
然后我在一个控制器中使用了它。现在我必须声明 sql 连接来执行像
这样的存储过程SqlConnection conn = new SqlConnection("DataSource")
只有我在使用同一个数据库名称。因此,与其每次都编写连接代码,不如在部署时调用我的 web.config 连接字符串 name.So 那时我的在线项目我将更改 web.config 文件中的 dbname。这样我就可以在任何地方调用此连接字符串后在任何地方使用。 现在我想要的是如何使用 Entity client connection string to sql connection 。在 mvc 中是否可行。
我的web.config文件连接字符串
<Connectionstring>
<add name="COSECEntities" connectionString="metadata=res://*/Models.dbCOSEC.csdl|res://*/Models.dbCOSEC.ssdl|res://*/Models.dbCOSEC.msl;provider=System.Data.SqlClient;provider connection string="data source=ADMIN-PC;initial catalog=COSEC;user id=sa;password=sql;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
我的控制器(异常)
public class UserMasterController : Controller
{
private COSECEntities db = new COSECEntities();
SqlConnection conn =new SqlConnection("Data Source=ADMIN-PC;Initial Catalog=COSEC;User ID=sa;Password=sql;");
}
现在如果我更改 web.config 文件中的数据库名称意味着我还必须更改我写的 sql 连接位置 too.But 如果我调用该 Web 配置文件连接 string name表示改一处就够了
我试图在我的控制器中调用那个 web.config 文件连接,但我得到的错误是不能使用实体客户端连接字符串到 sql connection.Code 下面。
异常控制器
public class UserMasterController : Controller
{
private COSECEntities db = new COSECEntities();
string strcon = ConfigurationManager.ConnectionStrings["COSECEntities"].ConnectionString;
SqlConnection con = new SqlConnection(strcon);
con.Open();
}
如果我在 web.config 文件中将提供商名称从实体客户端更改为 sql 客户端,则意味着另一个操作停止工作。
我已经尽力解释我的问题了。任何人了解我的问题并帮助我解决这个问题
谢谢..
您可以重用 Entity Framework 本身使用的连接,如下所示:
using (var db = new COSECEntities()) {
SqlConnection con = (SqlConnection) db.Database.Connection;
}
如果出于某种原因需要创建新连接,您可以重复使用连接字符串:
using (var db = new COSECEntities()) {
using (SqlConnection con = new SqlConnection(db.Database.Connection.ConnectionString)) {
}
}
如果您无权访问 entity framework 上下文或不想创建它,您可以从 entity framework 连接字符串中获取提供程序连接字符串,如下所示:
var cs = ConfigurationManager.ConnectionStrings["COSECEntities"].ConnectionString;
var providerCs = new EntityConnectionStringBuilder(cs).ProviderConnectionString;
SqlConnection con = new SqlConnection(providerCs);