4 Mayıs 2010, Salı
C# Lınq ve Lambda ile Nerede/Birleşim
Bir sorgu Etmeniz ve Lambda yazılı ile ilgili sorun yaşıyorum. Şimdiye kadar, burada benim kod çok fazla hata alıyorum:
int id = 1;
var query = database.Posts.Join(database.Post_Metas,
post => database.Posts.Where(x => x.ID == id),
meta => database.Post_Metas.Where(x => x.Post_ID == id),
(post, meta) => new { Post = post, Meta = meta });
Seri kullanarak yeniyim, eğer bu sorgunun doğru olup olmadığından emin değilim.
CEVAP
4 Mayıs 2010, Salı
Eğer SQL sözdizimi aşina iseniz, SERİ sorgu sözdizimini kullanarak daha net, daha doğal olur ve daha kolay hataları görmenizi sağlar:
var id = 1;
var query =
from post in database.Posts
join meta in database.Post_Metas on post.ID equals meta.Post_ID
where post.ID == id
select new { Post = post, Meta = meta };
Eğer gerçekten de Lambda kullanarak sıkışmış iseniz, sözdizimi biraz kapalı. İşte aynı sorgu, SERİ uzatma yöntemleri kullanarak:
var id = 1;
var query = database.Posts // your starting point - table in the "from" statement
.Join(database.Post_Metas, // the source table of the inner join
post => post.ID, // Select the primary key (the first part of the "on" clause in an sql "join" statement)
meta => meta.Post_ID, // Select the foreign key (the second part of the "on" clause)
(post, meta) => new { Post = post, Meta = meta }) // selection
.Where(postAndMeta => postAndMeta.Post.ID == id); // where statement
Bunu Paylaş:
Nerede lambda ifade bir zaman uyumsuz ...
Nerede DbQuery aşırı yaptı.() İçeren b...
&Quot birleşim;" Python?...
Nerede Bilinmeyen Sütun Fıkra...
VS hata ayıklama "hızlı izle"...