C S*_*per 1 .net c# entity-framework asp.net-web-api
我写了一个存储过程: -
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
Run Code Online (Sandbox Code Playgroud)
我通过Entity框架使用了这个程序: -
List<Int32>lst=context.GET_USERSTORYDATA_EXISTS(MyWizardUserStoryId,ProjectId,storyTitle);
Run Code Online (Sandbox Code Playgroud)
但它给我的错误: -
Can not implicitly convert type 'ObjectResult<int?>' to List<int>
Run Code Online (Sandbox Code Playgroud)
由于ObjectResult<T>工具IEnumerable<T>可以使用ToList.但是,您还需要从nullable int转换.最简单的方法是使用Linq Select然后进行项目ToList.此代码将使用零替换任何空值:
List<Int32> lst = context
.GET_USERSTORYDATA_EXISTS(MyWizardUserStoryId, ProjectId, storyTitle)
.Select(i => i.GetValueOrDefault(0))
.ToList();
Run Code Online (Sandbox Code Playgroud)