[英]Convert ObjectResult<int?> into List<int>
I have written a stored procedure :- 我写了一个存储过程:
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
I have consumed this procedure via Entity framework :- 我已经通过实体框架使用了此过程:
List<Int32>lst=context.GET_USERSTORYDATA_EXISTS(MyWizardUserStoryId,ProjectId,storyTitle);
but its giving me error:- 但它给我错误:-
Can not implicitly convert type 'ObjectResult<int?>' to List<int>
Since ObjectResult<T>
implements IEnumerable<T>
you can use ToList
. 由于
ObjectResult<T>
实现IEnumerable<T>
,因此可以使用ToList
。 However, you also need to convert from nullable int. 但是,您还需要从可为null的int转换。 Easiest way would be to project using a Linq
Select
and then ToList
. 最简单的方法是使用Linq
Select
然后使用ToList
进行投影。 This code will replace any null values with zero: 此代码将用零替换任何空值:
List<Int32> lst = context
.GET_USERSTORYDATA_EXISTS(MyWizardUserStoryId, ProjectId, storyTitle)
.Select(i => i.GetValueOrDefault(0))
.ToList();
要将对象结果转换为列表,我将添加ToList(),但是在您的情况下,我认为它不起作用,因为您只从存储过程中返回了一个整数。
List<Int32?> list1 =new List<int?>() { 1, null, 2 };
List<Int32> list2 = new List<int>();
foreach (var item in list1)
{
if (item.HasValue)
list2.Add(item.Value);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.