【问题标题】:C# MVC EF error - data reader incompatible member of the type does not have a corresponding column in the data reader with the same nameC# MVC EF 错误 - 类型的数据读取器不兼容成员在数据读取器中没有同名的对应列
【发布时间】:2016-12-05 09:08:33
【问题描述】:

我第一次尝试创建一个存储过程,但我做不到。所以我有一个proc,它根据提供给它的参数从数据库返回一个计数。我不确定我做错了什么,如果 SQL 错误或者我映射函数不正确。这是我的 SQL:

USE [AuditTracker_Codegen]
GO
/****** Object:  StoredProcedure [dbo].[GetAllFindingsCount]    Script Date: 05/12/2016 08:43:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:      <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[GetAllFindingsCount](@ReportId int, @Priority int, @IsDeleted bit)

AS
BEGIN


-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here
SELECT COUNT(*)
from [dbo].[App_Finding] finding
 WHERE finding.ReportId = @ReportId and finding.Priority = @Priority and finding.IsDeleted = @IsDeleted
END

首先,这个 SQL 查询看起来正确吗?我已经在 SSMS 中执行了它,它似乎返回了正确的结果。

然后我去VS,从数据库更新模型,添加存储过程。 然后我转到模型浏览器中的函数导入,右键单击,添加函数导入。从下拉列表中选择存储的过程,单击“获取列信息”,然后按“创建新的复杂类型”。为事物命名,然后按 OK。据我所知,应该是这样吧?还是我错了?

然后在我的代码中尝试

var context = new AuditTrackerDatabaseContext();
var findingsOne = context.GetAllFindingsCount_Result(report.ReportId,
                        (int) PriorityStatus.One, false).ToString();

这就是我得到上述错误的地方。当我在 edmx 上检查此 proc 的映射详细信息时,它说

Maps to GetAllFindingsCount                 Column
Column1 : Int32                     <-      Column1

有没有人能告诉我我在这里做错了什么,为什么它不起作用?

【问题讨论】:

    标签: c# sql-server entity-framework


    【解决方案1】:

    您可能需要为计数值命名,如下所示:

    SELECT COUNT(*) AS RESULT_OF_COUNT
    from ...
    

    【讨论】:

    • 谢谢,我会试一试,如果可行,请告诉您。
    • 这确实有效!该死的,这总是最简单的事情。非常感谢。知道如何将结果转换为 int 吗? (这是一个 ObjectResult
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多