2011-05-15 90 views
1

我有一个关于在LINQ查询中的问题:LINQ到SQL - 从X,其中X =“1”选择Y

DataClasses1DataContext db = new DataClasses1DataContext(); 
    var shpnme = from p in db.Orders 
        where p.ShipCity == "A" 
        select p.ShipName; 

难道我相信这个数据库将采用订单的数据库,然后在那里在“ShipCity”中,任何条目=“A”,它将返回ShipCity条目的船名?

你也可以做一个通配符?例如A *

回答

5

是的,你是正确的,这将返回在货主国家等于 “A” 的所有ShipNames 。一个排序的通配符搜索可以用.Contains().StartsWith().EndsWith()

var shpnme = from p in db.Orders 
      where p.ShipCity.StartsWith("A") 
      select p.ShipName; 
+0

谢谢,那正是我在找的:) – James 2011-05-15 17:14:15

+1

@詹姆斯:没问题。请不要忘记*接受*其中一个答案,请:) – SirViver 2011-05-15 17:30:29

1

你可以.Contains(), .StartsWith() and .EndsWith()在这个解决方案做

DataClasses1DataContext db = new DataClasses1DataContext(); 
    var shpnme = from p in db.Orders 
        where p.ShipCity.Contains("A") 
        select p.ShipName; 

OR

DataClasses1DataContext db = new DataClasses1DataContext(); 
     var shpnme = from p in db.Orders 
         where p.ShipCity.EndsWith("A") 
         select p.ShipName; 

OR 

DataClasses1DataContext db = new DataClasses1DataContext(); 
     var shpnme = from p in db.Orders 
         where p.ShipCity.StartsWith("A") 
         select p.ShipName; 
+0

嗨,你能举个例子吗? – James 2011-05-15 17:13:09

+0

用示例更新答案。 – anishMarokey 2011-05-15 17:18:14

3

它将使用订单,不数据库来完成。数据库在逻辑上等于LINQ to SQL中的上下文。否则你的假设是正确的。

要做通配符,请使用StartsWith()方法。

var shpnme = from p in db.Orders 
      where p.ShipCity.StartsWith("A") 
      select p.ShipName;