LINQ to SQL - FROM X WHERE X =“1”SELECT Y.

时间:2011-05-15 17:08:35

标签: c# .net sql windows linq

我对LINQ中的查询有疑问:

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

我相信数据库将使用Orders数据库,并且在“ShipCity”中任何条目=“A”的位置,它将返回该ShipCity条目的Shipname吗?

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

3 个答案:

答案 0 :(得分:5)

是的,你是对的,这将返回ShipCity等于“A”的所有ShipNames。可以使用.Contains().StartsWith().EndsWith()

进行一种通配符搜索
var shpnme = from p in db.Orders
             where p.ShipCity.StartsWith("A")
             select p.ShipName;

答案 1 :(得分:3)

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

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

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

答案 2 :(得分: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;