我写了一个存储过程:-
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
我已经通过 Entity Framework 使用了这个过程:-
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();
关于c# - 将 ObjectResult<int?> 转换为 List<int>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45859974/