c# - "Argument data type ntext is invalid for argument 1 of upper function"尝试将第三个项目添加到过滤器时

标签 c# linq entity-framework

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

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

假设我有一个名为 Nickname 的第三列。我尝试通过添加额外的 || 将其添加到过滤器中运算符(operator):

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):参数数据类型 ntext 对于上层函数的参数 1 无效。]

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

最佳答案

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

Linq to Entities : using ToLower() on NText fields

关于c# - "Argument data type ntext is invalid for argument 1 of upper function"尝试将第三个项目添加到过滤器时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15364484/

相关文章:

c# - ASP.net 重定向到调用页面

c# - 无法在 LinQ 查询中将类型 'bool?' 隐式转换为 'bool'?

c# - 使 AddOrUpdate 仅更改某些属性

asp.net-mvc - 在 ASP.NET MVC 中使用 Entity Framework 是否允许我的 Web 项目在不同的数据库供应商上工作

C#让电脑进入休眠或 hibernate 状态

c# - 发生 SocketException 现有连接被远程主机强行关闭 ErrorCode=10054

c# - 使用 XElement select 语句添加多个元素

c# - 获取具有匹配属性的对象列表

c# - 在 LINQ 中获取集合之间的差异

c# - .Net Framework 4.5 的升级应用程序 - 无法获得正确的 DataAnnotations 程序集