[string1> = string2在Linq to SQL中未实现,任何解决方法?

问题描述 投票:9回答:4

如何在Linq中将string1> = string2转换为SQL?

.net linq-to-sql string-comparison
4个回答
8
投票
在C#Linq To Sql中不支持

string1> = string2。 String类根本不会覆盖> =运算符。它仅覆盖!=和==运算符。您可以通过尝试编译以下方法来验证这一点

public static void Example() {
  int val = "foo" >= "bar";
}

如果要与LinqToSql中的字符串进行比较,则应该可以使用静态String.Compare(string,string)方法。


24
投票

如果您要查找>=,则不能直接使用字符串执行此操作。您可以通过CompareTo获得相同的行为:

string1.CompareTo(string2) >= 0

在这种情况下,结果小于或等于零意味着string1将在string2之前排序,因此会更大。


有关可能的错字信息,仅供参考,C#中的=>运算符仅用于lambda表达式的定义。


0
投票

您不能对字符串使用大于或等于的运算符,因为没有明确的方法可以说出您在说什么。如果它们实际上是数字,您可能想要做。

var query = from c in dc.Customers
            where c.CustomerID >= Int32.Parse("32")
            select c;

-2
投票

我不确定您要在这里做什么,但是字符串直接转换为Linq到SQL查询。

您能举例说明您正在尝试什么吗?

这是基本用法示例:

string string2 = "test";

using (MyDataContext dc = new MyDataContext())
{
   // without lambdas
   var query1 = from item in dc.Items
               where item.Value == string2
               select item;

   // with lambdas
   var query2 = dc.Items.Where(item=>item.string1 == string2);
}
© www.soinside.com 2019 - 2024. All rights reserved.