c# - 将 ObjectResult<int?> 转换为 List<int>

标签 c# .net 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

我已经通过 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/

相关文章:

entity-framework - Entity Framework 迁移 - 生成当前数据库模型的 sql 脚本

c# - 通过带有异步的 Entity Framework 运行存储过程是否会忽略 context.timeout

c# - BHO 暴露 javascript 方法在 IE 9+ 中有效,但在早期版本中失败

c# - 方法在单独的线程中运行 - 如何在调用线程中检索其值

c# - 确定应用程序从哪个位置启动

c# - 标签控件上的键盘助记符的用途是什么?

c# - XmlDocument 存在于哪个程序集中,以及如何使用它?

c# - 有丰富的领域模型示例吗?

c# - 增加一个包含字母和数字的字符串

c# - 这些异步调用中的哪一个与另一个不同?