System.Data.Entity.Core.EntityCommandExecutionException不在查询中由用户代码处理

潜伏的丹尼斯

我的内部有一个方法DataController.cs

public JsonResult MoveInLogin(LoginData d)
{
    using (MoveInDBEntities dm = new MoveInDBEntities())
    {
        var user = dm.MoveIns.Where(a => a.CID.Equals(d.CID) && a.Email.Equals(d.Email)).FirstOrDefault();
        return new JsonResult { Data = user, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
    }
}

在声明用户的第四行,触发此异常的位置:

EntityFramework.SqlServer.dll中发生类型为'System.Data.Entity.Core.EntityCommandExecutionException'的异常,但未在用户代码中处理

当我进一步查看时,我注意到“异常详细信息”是:

System.Data.SqlClient.SqlException:数据类型text和varchar在等于运算符中不兼容。

我的列名CID在SQL数据库中是类型varchar(10),电子邮件text在SQL数据库中是类型

如何格式化查询以消除此异常?

伊戈尔

电子邮件在SQL数据库中为文本类型

在您的语句中,您正在将Email属性作为参数与text列中包含的Email属性进行比较。电子邮件财产很可能被参数化以一个varchar类型,SQL语句是失败,因为生成的语句可能是@email = Email其中@email的类型的varchar,可以收发电子邮件text

类型text也已过时(),Microsoft希望每个人现在都使用ntextvarchar(max)或将其nvarchar(max)用于ntext。将数据库中的sql类型转换为varchar(max)可以解决该问题,这将是最好的方法。

您应该查看类型映射,因为您可能可以指定Email实际上是类型,Text但是即使那样也可能会失败,因为我不认为text可以比较或搜索sql类型(也许我错了)。


重新产生错误

create table #MoveIns (
CID varchar(10) not null,
Email text not null)

insert into #MoveIns (CID, Email) values('1','email 1')
, ('2','email 2')

declare @cid varchar(10) = '1', @email varchar(2000) ='email 1'

/*Next line has error: The data types varchar and text are incompatible in the equal to operator.*/
select * from #MoveIns where @cid = CID AND @email = Email

drop table #MoveIns

解决错误

create table #MoveIns (
CID varchar(10) not null,
Email text not null)

insert into #MoveIns (CID, Email) values('1','email 1')
, ('2','email 2')

/*This statement is what you want*/
alter table #MoveIns alter column Email VARCHAR(MAX) NOT NULL
GO

/*Test*/
declare @cid varchar(10) = '1', @email varchar(2000) ='email 1'

/*The data types varchar and text are incompatible in the equal to operator.*/
select * from #MoveIns where @cid = CID AND @email = Email

如果仍然有错误,请确保没有其他类型为的列text您可以sp_columns在Management Studio中使用或使用设计器来查询数据库表

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

System.Data.Entity.Core.EntityCommandExecutionException不在查询中由用户代码处理

来自分类Dev

Linq查询中的“ System.Data.Entity.Core.EntityCommandExecutionException”

来自分类Dev

Linq查询中的'System.Data.Entity.Core.EntityCommandExecutionException'

来自分类Dev

ASP.NET MVC System.Data.Entity.Core.EntityCommandExecutionException

来自分类Dev

c#Error as throw an exception of type'System.Data.Entity.Core.EntityCommandExecutionException'

来自分类Dev

ASP.NET Core中的System.Data.Entity.Spatial替换

来自分类Dev

类型'System.Data.Entity.Core.EntityCommandExecutionException'的第一次机会异常发生在EntityFramework.SqlServer.dll中

来自分类Dev

无法使用类型为System.Data.Entity.Core.Objects.ObjectQuery的实例调用System.Data.Entity.DbSet

来自分类Dev

EntityFramework.dll中发生“ System.Data.Entity.ModelConfiguration.ModelValidationException”,但未在用户代码中处理

来自分类Dev

无法将类型System.Data.Entity.Core.Objects.ObjectResult隐式转换为System.Data.Objects.ObjectResult

来自分类Dev

.NET Core 3.1,并且无法加载文件或程序集System.Data.Entity,版本= 4.0.0.0

来自分类Dev

不能使用类型为'System.Data.Entity.Core.Objects.ObjectQuery的实例进行调用

来自分类Dev

如何处理System.Data.Entity.Validation.DbEntityValidationException?

来自分类Dev

Mono中的System.Data.Entity.Design.PluralizationServices错误

来自分类Dev

Mono中的System.Data.Entity.Design.PluralizationServices错误

来自分类Dev

savechanges方法中的“ System.Data.Entity.Infrastructure.DbUpdateException”

来自分类Dev

升级到EF 6(RTM)-获取System.Data.Entity.Core.Objects.ObjectContext不能用于返回类型System.Data.Objects

来自分类Dev

脚手架EntityFramework 6无法将类型为'System.Data.Entity.Core.Objects.ObjectContext'的对象转换为'System.Data.Objects.ObjectContext'

来自分类Dev

脚手架EntityFramework 6无法将类型为'System.Data.Entity.Core.Objects.ObjectContext'的对象转换为'System.Data.Objects.ObjectContext'

来自分类Dev

EF6不支持上下文类型'System.Data.Entity.Core.Objects.ObjectContext'

来自分类Dev

EF6不支持上下文类型'System.Data.Entity.Core.Objects.ObjectContext'

来自分类Dev

Entity Framework Core 2.1 System.Data.SqlClient.SqlException (0x80131904):类型标志不是定义的系统类型

来自分类Dev

System.Data.Spatial或System.Data.Entity.Spatial

来自分类Dev

How to Save Entity with Relationship in Core Data

来自分类Dev

从 Linq 查询(System.Data.Entity.Infrastructure.DbQuery)获取结果并转换为列表

来自分类Dev

Entity Framework Core 中的 SqlGeometry

来自分类Dev

在 C# 中删除 MVC5 中 System.Data.Entity 中的所有行

来自分类Dev

Entity Framework Core中的动态查询执行

来自分类Dev

命名空间“ System.Data.Entity”中不存在命名空间名称“ SqlServer”

Related 相关文章

  1. 1

    System.Data.Entity.Core.EntityCommandExecutionException不在查询中由用户代码处理

  2. 2

    Linq查询中的“ System.Data.Entity.Core.EntityCommandExecutionException”

  3. 3

    Linq查询中的'System.Data.Entity.Core.EntityCommandExecutionException'

  4. 4

    ASP.NET MVC System.Data.Entity.Core.EntityCommandExecutionException

  5. 5

    c#Error as throw an exception of type'System.Data.Entity.Core.EntityCommandExecutionException'

  6. 6

    ASP.NET Core中的System.Data.Entity.Spatial替换

  7. 7

    类型'System.Data.Entity.Core.EntityCommandExecutionException'的第一次机会异常发生在EntityFramework.SqlServer.dll中

  8. 8

    无法使用类型为System.Data.Entity.Core.Objects.ObjectQuery的实例调用System.Data.Entity.DbSet

  9. 9

    EntityFramework.dll中发生“ System.Data.Entity.ModelConfiguration.ModelValidationException”,但未在用户代码中处理

  10. 10

    无法将类型System.Data.Entity.Core.Objects.ObjectResult隐式转换为System.Data.Objects.ObjectResult

  11. 11

    .NET Core 3.1,并且无法加载文件或程序集System.Data.Entity,版本= 4.0.0.0

  12. 12

    不能使用类型为'System.Data.Entity.Core.Objects.ObjectQuery的实例进行调用

  13. 13

    如何处理System.Data.Entity.Validation.DbEntityValidationException?

  14. 14

    Mono中的System.Data.Entity.Design.PluralizationServices错误

  15. 15

    Mono中的System.Data.Entity.Design.PluralizationServices错误

  16. 16

    savechanges方法中的“ System.Data.Entity.Infrastructure.DbUpdateException”

  17. 17

    升级到EF 6(RTM)-获取System.Data.Entity.Core.Objects.ObjectContext不能用于返回类型System.Data.Objects

  18. 18

    脚手架EntityFramework 6无法将类型为'System.Data.Entity.Core.Objects.ObjectContext'的对象转换为'System.Data.Objects.ObjectContext'

  19. 19

    脚手架EntityFramework 6无法将类型为'System.Data.Entity.Core.Objects.ObjectContext'的对象转换为'System.Data.Objects.ObjectContext'

  20. 20

    EF6不支持上下文类型'System.Data.Entity.Core.Objects.ObjectContext'

  21. 21

    EF6不支持上下文类型'System.Data.Entity.Core.Objects.ObjectContext'

  22. 22

    Entity Framework Core 2.1 System.Data.SqlClient.SqlException (0x80131904):类型标志不是定义的系统类型

  23. 23

    System.Data.Spatial或System.Data.Entity.Spatial

  24. 24

    How to Save Entity with Relationship in Core Data

  25. 25

    从 Linq 查询(System.Data.Entity.Infrastructure.DbQuery)获取结果并转换为列表

  26. 26

    Entity Framework Core 中的 SqlGeometry

  27. 27

    在 C# 中删除 MVC5 中 System.Data.Entity 中的所有行

  28. 28

    Entity Framework Core中的动态查询执行

  29. 29

    命名空间“ System.Data.Entity”中不存在命名空间名称“ SqlServer”

热门标签

归档