【问题标题】:"Argument data type ntext is invalid for argument 1 of upper function" when trying to add a third item to a filter尝试将第三项添加到过滤器时,“参数数据类型 ntext 对上层函数的参数 1 无效”
【发布时间】:2013-03-12 14:49:54
【问题描述】:

我一直在关注 ASP.NET 网站上的 Contoso 大学教程。我正在尝试扩展我的技能,因此决定尝试在过滤器中添加第三个选项。本教程提供:

if (!String.IsNullOrEmpty(searchString))
{
    students = students.Where(s => s.LastName.ToUpper().Contains(searchString.ToUpper())
                           || s.FirstMidName.ToUpper().Contains(searchString.ToUpper()));
}

假设我有第三列称为昵称。我尝试通过添加额外的 || 将其添加到过滤器中运营商:

if (!String.IsNullOrEmpty(searchString))
{
    students = students.Where(s => s.LastName.ToUpper().Contains(searchString.ToUpper())
                           || s.FirstMidName.ToUpper().Contains(searchString.ToUpper())
                           || s.Nickname.ToUpper().Contains(searchString.ToUpper()));
}

当我添加第三个选项运行时,我得到:

[SqlException (0x80131904): Argument data type ntext is invalid for argument 1 of upper function.]

我在这里缺少什么?接下来我需要学习什么来帮助我更多地了解这里发生的事情?

【问题讨论】:

  • 什么是底层类型?我想它们一定是 text/ntext?
  • 比较 Nickname 和 LastName 列的 SQL 定义。

标签: c# linq entity-framework


【解决方案1】:

我记得以前在使用实体框架时遇到过 NTEXT 列的问题。为了解决这个问题,我现在只使用 NVARCHAR(MAX)。我不确定这对您的情况是否有帮助..您是否能够更改数据库类型...否则,这里有更多信息:

Linq to Entities : using ToLower() on NText fields

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2019-09-30
      • 2017-03-22
      • 2016-07-29
      • 1970-01-01
      • 2021-08-07
      • 1970-01-01
      • 2014-05-06
      • 2015-10-26
      • 1970-01-01
      相关资源
      最近更新 更多