2011-05-15 58 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;