首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LINQ to SQL调用使用动态SQL的存储过程

问LINQ to SQL调用使用动态SQL的存储过程
EN

Stack Overflow用户
提问于 2011-09-03 00:03:44
回答 2查看 3.3K关注 0票数 0

我正在尝试使用LINQ连接到SQL存储过程。对于具有静态SQL查询的存储过程,它工作得非常好。

我希望连接到具有动态SQL的存储过程。

在存储过程的末尾有一条exec语句。

代码语言:javascript
复制
exec(@srchQuery) 

当我这样做时,它不工作,因为它是动态SQL。

如果我使用print @srchQuery并复制存储过程并在存储过程中使用静态SQL,它将不会出现任何问题。

EN

回答 2

Stack Overflow用户

发布于 2011-09-03 00:24:10

LINQ to SQL分析直接的SELECT语句,以查看作为执行所述SQL存储过程的结果它具有什么模型类型。因为您使用的是使用EXEC的动态语句,所以它无法确定要生成的模型类型。

简单的答案是不使用存储过程,而是使用LINQ to SQL来生成SQL,或者不在存储过程中使用动态构建语句。

生成SQL语句的事实必然意味着您有很强的用例,因为它可以在不使用存储过程的情况下实现您想要的结果。总是偏爱简约...问问自己,您是否需要在存储过程中使用动态构建的语句?

票数 2
EN

Stack Overflow用户

发布于 2011-09-03 01:09:58

只需在DataContext中直接调用存储过程:

代码语言:javascript
复制
using (YourDataContext dc = new YourDataContext())
{
    ...
    dc.ExecuteCommand("EXEC MyStoredProcedure");
    ...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7286170

复制
相关文章

相似问题

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