Şu anda LINQ ile bazı temel bilgileri anlamaya çalışıyorum. Netflix OData kaynağını sorgulamak için LINQPad kullanıyordum.LINQ Lambda sorgu 'select' oData ile çalışmıyor Not
Kaynak: Bir lambda sorgusu kullanırken tek özelliklerini seçmek için görünmüyor olabilirhttp://odata.netflix.com/v2/Catalog/
- anlama sorgusu mükemmel çalışıyor. Netflix oData kaynağında lambda'ları kullanarak daha karmaşık bir sorgu gerçekleştiren bir kod pasajı buldum ve bu, varlığın bir özelliğini döndürmek için iyi çalışıyor gibi görünüyor.
// works fine
var compQuery = from t in Titles
where t.ReleaseYear == 2007
select new { t.Name };
compQuery.Dump();
// fails: "Can only specify query options (orderby, where, take, skip) after last navigation."
var lambdaQuery = Titles
.Where(t => t.ReleaseYear == 2007)
.Select(t => t.Name);
lambdaQuery.Dump();
// works fine - found on SO.
var lambdaQuery2 = People
.Expand("TitlesActedIn")
.Where(p => p.Name == "George Lucas")
.First()
.TitlesActedIn.Select(t => t.ShortName);
lambdaQuery2.Dump();
kimse temel lambda sorgu zaman bir özellik geri dönmeleri istendi başarısız neden olarak biraz ışık tutmak misiniz?
ahhh, Bunu şimdi denedim ve işe yarıyor! - Anlamadığım şey, diğer lambda sorgusunun (insanlar) projeksiyon için anonim bir tip oluşturmamı gerektirmemesidir. – Dal
Bunun için “.First()' yi çağırırsınız, sonuçta sonuçları yansıtır, tüm kaydı kapatır ve sonra istemcideki bellekteki özellikleri seçer. –
Anonim tür kullanımını neden gerektirdiğini açıklar mısınız? Teşekkürler –