【问题标题】:LINQ to SQL use of => operand on String not allowed [duplicate]LINQ to SQL 不允许在字符串上使用 => 操作数 [重复]
【发布时间】:2010-10-07 21:12:09
【问题描述】:

可能重复:
string1 >= string2 not implemented in Linq to SQL, any workarround?

为了简要总结我想要实现的目标,我们有一个名为 Application 的表,它存储应用程序版本号。例如,该表的内容是

ApplicationID          VersionID
1                      R1.01.01.01
2                      C8.00.00.01
2                      C8.00.00.02
2                      R8.10.00.00
2                      R8.20.00.02
2                      R9.00.00.01
2                      R9.00.00.02
2                      R9.00.00.03
3                      R7.00.30.00

当我在 TSQL 中执行此查询时,没有问题并且我得到正确的结果(注意 VersionID 是 nvarchar 类型)

Select * From Applications where VersionID >= 'R9.00.00.01' and ApplicationID = 2

但是当我开始像这样使用 LINQ to SQL 时

var Applications = from v in db.Applications 
                   where v.VersionID.StartsWith("R") 
                   && v.VersionID >= "R9.00.00.01" 
                   && v.ApplicationID == 2
                   orderby v.VersionID
                   select v;

然后我收到错误“运算符 >= 不能应用于“字符串”和“字符串”类型的操作数

如何在 LINQ to SQL 中实现这一目标,而不更改数据库端的任何内容?

【问题讨论】:

    标签: c# linq tsql linq-to-sql


    【解决方案1】:

    使用string.Compare()?

    && string.Compare( v.VersionID , "R9.00.00.01"  ) >= 0
    

    【讨论】:

    • 我刚刚写了同样的答案,但我认为这正在被翻译成 SQL ......这行不通吗?
    • @Mark 我总是对它的翻译有点模糊。这是我最好的猜测,如果我错了,我会吃下箭头。
    • 感谢它对我有用的快速响应!!!
    【解决方案2】:

    使用

    string.Compare(v.VersionID, "R9.00.00.01") >= 0
    

    改为

    【讨论】:

      猜你喜欢
      • 2020-04-30
      • 2012-12-07
      • 1970-01-01
      • 1970-01-01
      • 2014-09-26
      • 1970-01-01
      • 2012-12-23
      • 1970-01-01
      相关资源
      最近更新 更多