C# LINQ到SQL的使用=>;不允许字符串上的操作数

C# LINQ到SQL的使用=>;不允许字符串上的操作数,c#,linq,tsql,linq-to-sql,C#,Linq,Tsql,Linq To Sql,可能重复: 为了简要总结我想要实现的目标,我们有一个名为Application的表,它存储应用程序版本号。例如,该表的内容是 ApplicationID VersionID 1 R1.01.01.01 2 C8.00.00.01 2 C8.00.00.02 2 R8.10.00.00 2

可能重复:

为了简要总结我想要实现的目标,我们有一个名为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类型)

但是当我开始像这样使用LINQ到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;
然后我得到错误“Operator>=不能应用于'string'和'string'类型的操作数”

如何在LINQ to SQL中实现这一点而不改变数据库端的任何内容?

使用

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

使用

string.Compare(v.VersionID, "R9.00.00.01") >= 0
而不是使用

使用


我刚刚写了同样的答案,但我认为这是被翻译成SQL的…这不会起作用吧?@Mark我对它的翻译方式总是有点模糊。这是我最好的猜测,如果我错了,我会吃下箭头。谢谢你的快速反应,它对我有效!!!我刚刚写了同样的答案,但我认为这是被翻译成SQL的。。。。这行不通吧?@Mark我对它的翻译总是有点模糊。这是我最好的猜测,如果我错了,我会吃下箭头。谢谢你的快速反应,它对我有效!!!
&& string.Compare( v.VersionID , "R9.00.00.01"  ) >= 0