Linq to entities - Lambda - 连接字符串

本文关键字:连接 字符串 Lambda Linq entities to | 更新日期: 2023-09-27 18:33:20

我想使用 lambda 连接一个字符串,以将该连接值与某个条件进行比较。

Invoices = Invoices.Where(f => ((string)f.invoice_prefix + String.Format("{0:0000}", Convert.ToInt32(f.invoice_number))).ToLower().Equals(condition7));

但是我收到一条错误消息:

名称"f"在当前上下文中不存在

尝试了几个 String.Format 和 String.Concat 变体,例如

Invoices = Invoices.Where(f => (String.Format("{0}{1}",f.invoice_prefix,String.Format("{0:0000}", Convert.ToInt32(f.invoice_number)))).ToLower().Equals(condition7));

但没有成功...有人可以帮助我语法吗?

提前感谢!

Linq to entities - Lambda - 连接字符串

Linq to Entities不了解所有的.NET框架方法。

为了在数据库上将其作为 SQL 语句运行,只需使用可转换为 SQL 的运算符。这意味着您需要使用基元数据类型重写谓词。

所以像这样:

string prefixCondition = ...
int invoiceNumberCondition = ...
Invoices.Where( f =>
  f.invoice_prefix == prefixCondition
  &&
  f.invoice_number == invoiceNumberCondition 
)

我建议使用 LinqPad 进行测试,因为它显示了生成的 SQL 语句。