首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Massive:使用存储过程

Massive:使用存储过程
EN

Stack Overflow用户
提问于 2012-11-21 06:50:31
回答 2查看 1.3K关注 0票数 1

我正在尝试使用大量的micro来执行存储过程。

代码语言:javascript
运行
复制
var tbl = new DynamicModel("Conn", tableName: "User", primaryKeyField: "UserID");
var result = tbl.Query("EXEC User_INSERT @0,@1,@2,@3", "7843bf9d-9cb8-495b-aaa5-785ac74b82a5", "7FBDDG58-B08E-4723-9477-C9E791CDF36E", "Admin", "11/20/2012");

在调试时,它甚至不会进入大量的库中。我也试过了.

代码语言:javascript
运行
复制
var result = tbl.Query(@"EXEC ...);

而且还

代码语言:javascript
运行
复制
var result = tbl.Query("User_INSERT @0,...);

似乎什么都不起作用。具有相同句柄的SELECT查询可以工作,但不能用于存储过程。如果我在语句中创建一个断点,并在“快速观察”中加载相同的断点,然后展开“动态结果”,它就会触发存储过程。

EN

回答 2

Stack Overflow用户

发布于 2014-11-27 04:36:06

DynamicModel.Query返回一个IEnumerable,因此在IEnumerable需要在C#代码中求值之前,查询(或本例中的存储过程)永远不会在SQL中执行。

只需将.ToList()添加到.Query()调用的末尾,就可以强制对IEnumerable求值:

代码语言:javascript
运行
复制
var tbl = new DynamicModel("Conn", tableName: "User", primaryKeyField: "UserID");
var result = tbl.Query("EXEC User_INSERT @0,@1,@2,@3", "7843bf9d-9cb8-495b-aaa5-785ac74b82a5", "7FBDDG58-B08E-4723-9477-C9E791CDF36E", "Admin", "11/20/2012").ToList();
票数 3
EN

Stack Overflow用户

发布于 2012-11-21 09:43:23

这只是一个粗略的猜测,因为我不理解您的错误消息是什么,并且需要更多信息,但是您不能将GUID作为字符串传递(除非它将其作为字符串类型接受?)。也许可以试一下

代码语言:javascript
运行
复制
var result = tbl.Query("EXEC User_INSERT @0,@1,@2,@3", 
New Guid("7843bf9d-9cb8-495b-aaa5-785ac74b82a5"), 
New Guid("7FBDDG58-   B08E-4723-9477-C9E791CDF36E"), "Admin", "11/20/2012");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13483575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档