In Linq Dynamic Query, Scott Guthrie shows an example Linq query:
var query =
db.Customers.
Where("City == @0 and Orders.Count >= @1", "London", 10).
OrderBy("CompanyName").
Select("new( CompanyName as Name, Phone)");
Notice the projection new( CompanyName as Name, Phone)
. If I have a class like this:
public class CompanyContact {
public string Name {get;set;}
public string Phone {get;set;}
}
How could I essentially "cast" his result using the CompanyContact data type开发者_如何学JAVA without doing a foreach on each record and dumping it in to a different data structure? To my knowledge the only .Select available is the Dymanic Query version which only takes a string and parameter list.
A far as I can see from the article you cite, The dynamic query methods return IQueryable<> objects, which mean the normal Select() should be available.
var query =
db.Customers.
Where("City == @0 and Orders.Count >= @1", "London", 10).
OrderBy("CompanyName").
Select( c => new CompanyContact {Name = c.CompanyName, c.Phone});
You may have to explicitly give the type for the Select
Select<Customer>( c => new CompanyContact {Name = c.CompanyName, c.Phone});
精彩评论