参数数据类型文本对于下层函数的参数 1 无效

Dee*_*pal 4 c# sql sql-server lambda

在我的应用程序的搜索功能中,我实现了一个搜索功能,该功能对数据库执行以下语句。

resultsquery = db.DBMovies.Where(m => (m.Actors.ToLower()).Contains(q.ToLower()))
Run Code Online (Sandbox Code Playgroud)

在部分中,q.ToLower()我读取了 url 参数q并将其转换为小写并在相关的数据库列中找到它。在我的数据库中,“Actors”列的类型是“text”而不是 varchar。当我运行我的应用程序时,我收到一个名为Argument data type text is invalid for argument 1 of lower function. 有什么办法可以避免这种异常吗?我更喜欢一种可以在一行中解决它的方法。

谢谢你。

Chr*_*tos 5

只需将数据库中列的数据类型更改为NVARCHAR(MAX),您的代码就会像魅力一样工作。这是一个已知的问题,如果你做一些谷歌搜索。例如,请看这里

  • 如果无法更改数据类型,请使用“convert(varchar(max), myValue)”。 (2认同)