gpt4 book ai didi

c# - SQLite.Net-PCL 没有这样的功能 : ToString

转载 作者:太空宇宙 更新时间:2023-11-03 21:09:18 25 4
gpt4 key购买 nike

我有包含 Name(string) 和 Number(int) 列的 Employees 表。

我可以为任何事情搜索员工。所以,

var query = cnn.Table<Employees>()
.Where(x => x.Name.Contains(search) ||
x.Number.ToString().Contains(search));

An exception of type 'SQLite.Net.SQLiteException' occurred in SQLite.Net.Platform.WinRT.dll but was not handled in user code

Additional information: no such function: tostring

如何将数字列转换为字符串?

谢谢。

最佳答案

问题是 SQLLite linq 不知道什么是 ToString() - 这是一个可以重写以执行任何操作的 C# 方法。你应该使用 SqlFunctions :

var query = cnn.Table<Employees>()
.Where(x => x.Name.Contains(search) ||
SqlFunctions.StringConvert((int)x.Number).Contains(search));

另一种解决方案是在 where 之前添加一个 .ToList()/AsEnumerable() 但随后过滤将发生在c#代替数据库


还可以:

var query = cnn.Table<Employees>()
.Where(x => x.Name.Contains(search) || x.Number > 0)
.AsEnumerable()
.Where( x => x.Number.ToString().Contains(search));

关于c# - SQLite.Net-PCL 没有这样的功能 : ToString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38761958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com