相关疑难解决方法(0)

来自EF映射对象的不兼容的数据读取器异常

我正在使用实体框架并更新了一个表及其存储过程,但是在调用存储过程时出现以下错误.

数据读取器与指定的"FormValueModel.Valuation"不兼容.类型为"ValuationId"的成员在数据读取器中没有具有相同名称的相应列.

ValuationId是我想要自动增加的主键.

我可以从SQL管理工作室执行存储过程查找,当我运行我的应用程序时,它会写入数据库,但随后会出现错误消息.

我不熟悉实体框架,只是有基础,我认为它可能是model.edmx的映射问题.

在模型中重新创建和映射表和存储过程的正确过程是什么?


存储过程.

    ALTER PROCEDURE [dbo].[ValuationCreate]
    @TrackingNumber varchar(100),
    @FormMobiValuationId varchar(100),
    @ValuationPropertyId int,
    @ValuationFileName varchar(50)

AS   

SET NOCOUNT ON
SET XACT_ABORT ON


DECLARE @ErrorMessage varchar(1000)



BEGIN TRANSACTION


    --Insert to Valuation
    INSERT INTO [Valuation]
    (
        TrackingNumber,
        FormMobiValuationId,
        ValuationPropertyId, -- new
        ValuationFileName,
        Date,
        ValuationStatus,
        IsActive
    )
    VALUES
    (
        @TrackingNumber,
        @FormMobiValuationId,
        @ValuationPropertyId,--new
        @ValuationFileName,
        GETDATE(),
        1, --Created
        1
    )





IF @@ERROR > 0
BEGIN
    SET @ErrorMessage = 'Valuation Insert failed'
    GOTO ErrorHandler
END
ELSE
BEGIN
    COMMIT TRANSACTION
    RETURN
END



ErrorHandler:

RAISERROR(@ErrorMessage,16,1); …
Run Code Online (Sandbox Code Playgroud)

mapping asp.net-mvc entity-framework model

24
推荐指数
3
解决办法
5万
查看次数

数据读取器与指定的不兼容。在数据读取器中没有具有相同名称的对应列

我不断收到以下异常。例外使我感到困惑,因为我没有选择UserID

我尝试将选择更改为,SELECT *但这只会导致a result.Count为0,无论数据是否存在。

我在数据库中有一个虚拟记录,称为bob tob。

我注意到,如果将鼠标悬停在的用户部分上db.Users.SqlQuery

里面的文字是

{SELECT 
[Extent1].[userID] AS [userID], 
[Extent1].[userFirstName] AS [userFirstName], 
[Extent1].[userLastName] AS [userLastName], 
[Extent1].[userName] AS [userName], 
[Extent1].[userEmail] AS [userEmail], 
[Extent1].[userPassword] AS [userPassword], 
[Extent1].[userStatus] AS [userStatus], 
[Extent1].[userEmailVerificationStatus] AS [userEmailVerificationStatus], 
[Extent1].[userActivationCode] AS [userActivationCode]
FROM [dbo].[Users] AS [Extent1]}
Run Code Online (Sandbox Code Playgroud)

我猜它正在尝试选择所有User类项,无论如何?如果是这样,那我该如何制止呢?我想念什么?

这是例外:

数据读取器与指定的“ UserRegistrationPasswordsModel.User”不兼容。类型“ userID”的成员在数据读取器中没有具有相同名称的对应列。

下面是调用的代码EmailExists。我ToString()错误地希望这可能是问题所在。

#region EmailExist
// Email already exists?
if (Utilities.EmailExists(user.userEmail.ToString()))
{
    // A pretty awesome way to make a custom exception
    ModelState.AddModelError("EmailExist", "Email already exists"); …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc parameterized-query

3
推荐指数
1
解决办法
5310
查看次数