Linq to sql 基于不计数(*)的存储过程的Linq函数返回null
我有一个SQL Server 2008存储过程,它执行select计数(*)。。。 基于该SP,我有一个名为GetCount()的LINQ函数 当我做以下事情时: 智力?count=datacontext.GetCount().Single().Column1 计数为空。SP从不返回nullLinq to sql 基于不计数(*)的存储过程的Linq函数返回null,linq-to-sql,Linq To Sql,我有一个SQL Server 2008存储过程,它执行select计数(*)。。。 基于该SP,我有一个名为GetCount()的LINQ函数 当我做以下事情时: 智力?count=datacontext.GetCount().Single().Column1 计数为空。SP从不返回null 为什么计数为空?当我给计数指定别名时,它起作用了 看来LINQtoSQL不喜欢以SELECT语句返回单个结果的存储过程。我也遇到了和你一样的麻烦 对于这种情况,一种解决方案是创建一个存储函数: CREATE
为什么计数为空?当我给计数指定别名时,它起作用了 看来LINQtoSQL不喜欢以SELECT语句返回单个结果的存储过程。我也遇到了和你一样的麻烦 对于这种情况,一种解决方案是创建一个存储函数:
CREATE FUNCTION dbo.GetCountFunc()
RETURNS INT
AS BEGIN
DECLARE @MyCount INT
SELECT @MyCount = COUNT(*) FROM Customers
RETURN @MyCount
END
然后将其拉入LINQtoSQL数据上下文并引用它。在这种情况下,我得到一个INT,没问题
Marc这个链接帮助了我
基本上,如果您试图从存储过程返回int,它需要如下所示
CREATE PROCEDURE [dbo].[GetEmployeeCountRet]
AS
BEGIN
DECLARE @Ret INT
SELECT @Ret = COUNT(*) FROM Emp
RETURN @Ret
END
选择COUNT(*)FROM customers这很简单,它返回一个数字。我已经测试过了。我的LINQ正确吗?你能发布你的解决方案吗?您在哪里定义了别名?它是SELECT COUNT(*)as CustCount FROM customers。的确!这非常令人惊讶,我必须说-听起来像是Linq到SQL代码库中的一个bug……它可能与我们在设计器中的一个bug有关,该bug在4.0中修复。