我写了一个存储过程:-
CREATE PROCEDURE GET_USERSTORYDATA_EXISTS
@MyWizardUserStoryId INT
,@ProjectId INT
,@StoryTitle NVARCHAR(MAX)
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS (SELECT 1 FROM USERSTORY WHERE [MyWizardUserStoryId]=@MyWizardUserStoryId AND ProjectId=@ProjectId)
BEGIN
IF EXISTS (SELECT 1 FROM USERSTORY WHERE [MyWizardUserStoryId]=@MyWizardUserStoryId AND ProjectId=@ProjectId AND Title=@StoryTitle)
BEGIN
SELECT 0;
END
ELSE
BEGIN
SELECT 1;
END
END
ELSE
BEGIN
SELECT 1;
END
END
GO
我已经通过实体框架使用了这个过程:-
List<Int32>lst=context.GET_USERSTORYDATA_EXISTS(MyWizardUserStoryId,ProjectId,storyTitle);
但它给了我错误:-
Can not implicitly convert type 'ObjectResult<int?>' to List<int>
由于ObjectResult<T>
实现,IEnumerable<T>
您可以使用ToList
. 但是,您还需要从可为空的 int 转换。最简单的方法是使用 Linq 进行投影Select
,然后使用ToList
. 此代码将用零替换任何空值:
List<Int32> lst = context
.GET_USERSTORYDATA_EXISTS(MyWizardUserStoryId, ProjectId, storyTitle)
.Select(i => i.GetValueOrDefault(0))
.ToList();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句