【问题标题】:SQL query (having PatIndex) to EF Linq expression [duplicate]SQL查询(具有PatIndex)到EF Linq表达式[重复]
【发布时间】:2021-04-20 01:29:12
【问题描述】:

想知道您是否可以帮助在 EF Linq 表达式中转换以下查询,我的困惑点是 PatIndex 函数。

SELECT b.BuildingNumber, LEFT(b.BuildingNumber, PATINDEX('%[^0-9]%', l.BuildingNumber+ 't') - 1) numberOnly
FROM Building b

谢谢。

【问题讨论】:

  • 根据问题指南,请展示您的尝试并告诉我们您发现了什么(在本网站或其他地方)以及为什么它不能满足您的需求。
  • 感谢@DaleK。但我不知道如何在 Linq 表达式中转换上述查询。 EF Linq 表达式中 PatIndex 的替代方法是什么?这是我的问题。
  • PATINDEX('%[^0-9]%', l.BuildingNumber+ 't') 表示I.BuildingNumber 中的第一个非数字字符。当字符串中没有任何数字时,+'t' 导致表达式返回 1(而不是 0)。

标签: c# sql-server entity-framework linq


【解决方案1】:

在 Linq 表达式中,您可以使用 SqlFunctions.PatIndex 代替 LEFT,只需使用 C# 字符串的 .Substring 方法 - EF 应该能够将其转换为 SQL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 2016-11-25
    • 2022-08-03
    相关资源
    最近更新 更多