我对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 *
答案 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;