sql-server - 将 SQL Server 命名参数与 ExecuteStoreQuery 和 ExecuteStoreCommand 结合使用

标签 sql-server entity-framework

在直接调用存储过程或函数时,我尝试将 SQL Server 命名参数与 ObjectContext.ExecuteStoreQueryObjectContext.ExecuteStoreCommand 结合使用。

SQL Server 命名参数与 Entity Framework 命名参数不同 - 它们允许我执行与此类似的查询:

EXEC sp_GetData @firstParameter = 1, @thirdParameter = 2, @secondParameter = 1

与按顺序计算的 Entity Framework 命名参数相比,此查询中参数的顺序并不重要。

我想将 SQL Server 命名参数与 Entity Framework 结合使用,这样,如果存储过程中参数的顺序发生更改,则调用它的 Entity Framework 代码不会受到影响。

最佳答案

为了使其按预期工作,您需要将查询文本设置为参数化查询。棘手的部分是您只需要确保参数的命名与 SP 参数的命名不同即可:

var cmdText = "[DoStuff] @Name = @name_param, @Age = @age_param";
var @params = new[]{
   new SqlParameter("name_param", "Josh"),
   new SqlParameter("age_param", 45)
};

ObjectContext.ExecuteStoreQuery<MyObject>(cmdText, @params);

关于sql-server - 将 SQL Server 命名参数与 ExecuteStoreQuery 和 ExecuteStoreCommand 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13035353/

相关文章:

sql-server - 查找 SQL Server 数据库是否存在有效的完整备份

sql-server - 我怎样才能对我的用户锁定我的 MS-SQL 数据库,但仍然可以通过 ODBC Access 它?

sql-server - 在 SQL 中将一列数据显示为两列

c# - SQL Select 数据变化时

C# ADO.NET 插入具有默认值的新行

entity-framework - EF 4.3 Code First 迁移 - 每次迁移的种子

java - ebean java play框架中的约束未反射(reflect)在生成的sql中

sql - 在状态字段中获取空值,任何人都可以解释我在做什么错吗?

entity-framework - 如何禁用代码优先迁移

entity-framework - Entity Framework BuildContainsExpression导致内部.NET Framework数据提供程序错误1025