繁体   English   中英

如何使这个linq表达?

[英]How to make this linq expression?

我有一个数据库,该数据库中具有属性如“ 12.34.56.78”的数据。
为了获得此数据,我使用

using (Data context = new Data(connection, compiledModel, true))
{
}

现在,我只想获取第一个和第二个数字与我的值相同的数据。
我已经试过了:

myData = context.Where(x => x.Numbers.Split('.')[0] == firstNumber && x.Numbers.Split('.')[1] == secondNumber)

但这只会给我这个错误:

System.NotSupportedException:'LINQ to Entities不支持LINQ表达式节点类型'ArrayIndex'。

我如何写这个表达式来得到我想要的?

编写IQueryable查询时,应始终考虑如何将其转换为SQL查询。

您将如何通过简单的SQL查询做到这一点?
SQL中没有Split ,因此您可能会执行以下操作:

SELECT * FROM Table WHERE Numbers LIKE '12.34.%'

这等效于以下LINQ:

string prefix = $"{firstNumber}.{secondNumber}.";
myData = context.Where(x => x.Numbers.StartsWith(prefix));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM