下面是我的 Linq 查询
var test = from k in db.CityTable
where k.Name.Substring(0,1)== test1 && k.Name.Substring(4,1) == test2
select k.CityName;
k.Name 将具有如下数据库表中所示的值
示例:纽约或新泽西 这里 test1 和 test 2 是字符串变量,其中包含单个字符,如 N 或 Y 或 J。 现在我想比较 k.Name 的第一个字母和 test1。
并将test2与k.Name中第二个单词的首字母进行比较。
假设纽约是数据库列中的值。
test1=N
test2=Y
k.Name=纽约
现在它应该将 N 与 New 的第一个字母进行比较,将 Y 与 York 的第一个字母进行比较。 为此,我必须获得空格后的第一个字符。
这是我试过的,
test = from k in db.CityTable
where k.CityName.Substring(0,1)== test1 && k.CityName.Substring(k.CityName.IndexOf(' '),1) == test2
select k.CityName;
但是在这个查询中我得到了异常
base {System.SystemException} = {"LINQ to Entities does not recognize the method 'Int32 IndexOf(Char)' method, and this method cannot be translated into a store expression."}
我怎样才能做到这一点?
最佳答案
考虑尝试 IndexOf("")
,这也可能更好 IndexOf(string.Empty)
,检查 String.IndexOf(substring) .
where k.CityName.Substring(0,1)== test1 && k.CityName.Substring(k.CityName.IndexOf(" "),1) == test2
关于c# - 如何在 Linq Query 中获取 IndexOf() 空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9029907/