我正在尝试在我的Web方法中返回一个List
我的存储过程" GetProductsByProductID"使用EXEC sp_name @parameter
从SQL Server执行时返回两个颜色但是当我在C#Context中更新数据库模型时,我得到int作为返回。
我尝试过,删除SP并重新创建,然后再更新模型。似乎不起作用。如果有人能解决这个问题会非常有用吗?
我的SP代码:
CREATE PROCEDURE [dbo].[GetProductNameIDsByProdNumber] (@prodList nvarchar(max))
AS
BEGIN
SET NOCOUNT ON
DECLARE @Err int
CREATE TABLE #tempProduct (
ProductNumber int
)
INSERT INTO #tempProduct (ProductNumber)
SELECT
*
FROM SplitString(@prodList, ',')
SELECT
c.ProductID,
c.ProductName
FROM dbo.Product AS c
INNER JOIN #tempProduct
ON c.ProductNumber = #tempProduct.ProductNumber
DROP TABLE #tempProduct
SET @Err = @@Error
RETURN @Err
END
GO
我做的结果 EXECUTE GetProductNameIDsByProdNumber @prodList =' 1111,4545'
ProductID ProductName
F6F1067B ABC
BD3B2D0A XYZ
模型生成的SP,当我在上下文文件中从数据库更新模型
时public virtual int GetProductNameIDsByProdNumber(string prodList)
{
var prodListParameter = prodList != null ?
new ObjectParameter("prodList", prodList) :
new ObjectParameter("prodList", typeof(string));
return ((IObjectContextAdapter)this).
ObjectContext.ExecuteFunction("GetProductNameIDsByProdNumber", prodListParameter);
}
答案 0 :(得分:0)
在你的程序中尝试这样的事情
CREATE PROCEDURE [dbo].[GetProductNameIDsByProdNumber] (@prodList nvarchar(max))
AS
BEGIN
SET NOCOUNT ON
DECLARE @Err int
CREATE TABLE #tempProduct (
ProductNumber int
)
INSERT INTO #tempProduct (ProductNumber)
SELECT
*
FROM SplitString(@prodList, ',')
BEGIN TRY
SELECT
c.ProductID,
c.ProductName
FROM dbo.Product AS c
INNER JOIN #tempProduct
ON c.ProductNumber = #tempProduct.ProductNumber
END TRY
BEGIN CATCH
SET @Err = @@Error
RETURN @Err
END CATCH
END
GO