Şurada araya sıkıştırdım \".Where(u => u.UyeId == kayitlar[0].TakipEdilenId)\" bunun orda [0] la ilk kaydı alınmamış hali gibi hepsini dizip son 50sini almak istiyorum. Karışık anlattım galiba, kısa olarak twitterdaki gibi takipçileri dizip sonra bunların attığı YorumId sine göre 50şerli olarak dizmek istiyordum ama kullanıcıları birleştirip yorumId lerini alma kısmında kafam çok karıştı, nasıl yapabilirim acaba?
","headline":"Entity Framework'de Twitter gibi veri dizme","mainEntity":{"@type":"Question","name":"Entity Framework'de Twitter gibi veri dizme","url":"https://uzmanim.net/soru/entity-framework-de-twitter-gibi-veri-dizme/2087","author":{"@type":"Person","name":"berkorn"},"comment":{"@type":"Comment","name":"cevabı güncelledim. umarım bu sefer doğru anlamışımdır :)","author":{"@type":"Person","name":"alattin"},"text":"cevabı güncelledim. umarım bu sefer doğru anlamışımdır :)"},"commentCount":1,"dateCreated":"2014-01-17T02:54:21.047+02:00","dateModified":"2014-01-18T12:42:41.437+02:00","datePublished":"2014-01-17T02:54:21.047+02:00","keywords":["entity framework","listeleme","veri çekmek","database"],"publisher":{"@type":"Organization","name":"uzmanim.net","url":"https://uzmanim.net"},"text":"Merhaba arkadaşlar, twitterdaki gibi takip edilenlerin son girdiklerini listelemeye çalışıyorum ama kafam karıştı. İlk önce kaç takipçisi olduğunu şu kod ile çekiyordum:
var kayitlar = (from u in Db.Takip\r\n where uyeId == u.UyeId\r\n select new NTakip\r\n {\r\n TakipId = u.TakipId,\r\n TakipEdilenId = u.TakipId\r\n }).ToList();
Bu kod bana takip edilenleri veriyordu ben burada bu takip edilenleri alıp:
var kayit = (from u in Db.Yorum.OrderByDescending(u => u.YorumId).Where(u => u.Onay == true).Where(u => u.UyeId == kayitlar[0].TakipEdilenId).Skip(sayfa * 50).Take(50)\r\n select new NYorum\r\n {\r\n YorumId = u.YorumId,\r\n UyeId = u.UyeId,\r\n Yorumu = u.Yorumu,\r\n Tarih = u.Tarih,\r\n IpAdres = u.IpAdres,\r\n Onay = u.Onay,\r\n UyeAdi = u.Uye.UyeAdi\r\n }).ToList();
Şurada araya sıkıştırdım \".Where(u => u.UyeId == kayitlar[0].TakipEdilenId)\" bunun orda [0] la ilk kaydı alınmamış hali gibi hepsini dizip son 50sini almak istiyorum. Karışık anlattım galiba, kısa olarak twitterdaki gibi takipçileri dizip sonra bunların attığı YorumId sine göre 50şerli olarak dizmek istiyordum ama kullanıcıları birleştirip yorumId lerini alma kısmında kafam çok karıştı, nasıl yapabilirim acaba?
Şimdi sorunuzu tekrar okudum. İstediğinizi şu şekilde anlıyorum:
Kullanıcıların takip ettikleri kişilerin girmiş oldukları son 50 yorumu listelemek istiyorsunuz.
İlk okuduğumda takip edilenlerin yazmış oldukları son 50 yorum olarak algıladım. Siz sanırım sadece toplamda son 50 kaydı almak istiyorsunuz.
int uyeId=1; \r\nvar y = (from _y in db.Yorum\r\n where db.Takip.Where(t=> t.UyeId==uyeId).Select(t => t.TakipEdilenId).Contains(_y.UyeId) \r\n select _y).OrderByDescending(t => t.Tarih).Take(50); \r\n
Yukarıdaki ifade kullanıcıların takip listesinde olan diğer kullanıcıların girmiş oldukları son 50 kaydı getirir.
Sql sunucuda şu sorguyu çalıştırıcaktır.
SELECT TOP (5) \r\n[Extent1].[YorumId] AS [YorumId], \r\n[Extent1].[UyeId] AS [UyeId], \r\n[Extent1].[Yorumu] AS [Yorumu], \r\n[Extent1].[Tarih] AS [Tarih]\r\nFROM [dbo].[Yorums] AS [Extent1]\r\nWHERE EXISTS (SELECT \r\n\t1 AS [C1]\r\n\tFROM [dbo].[Takips] AS [Extent2]\r\n\tWHERE (1 = [Extent2].[UyeId]) AND ([Extent2].[TakipEdilenId] = [Extent1].[UyeId])\r\n)\r\nORDER BY [Extent1].[Tarih] DESC\r\ngo
Seçim kriteri olarak siz istediğiniz verileri belirterek performansını iyileştirebilirsiniz.
","url":"https://uzmanim.net/soru/entity-framework-de-twitter-gibi-veri-dizme/2087#a2097","author":{"@type":"Person","name":"alattin"},"comment":{"@type":"Comment","name":"Cevap için çok teşekkürler tam istediğim gibi oldu. :)","author":{"@type":"Person","name":"berkorn"},"text":"Cevap için çok teşekkürler tam istediğim gibi oldu. :)"},"commentCount":1,"dateCreated":"2014-01-17T21:22:34+02:00","dateModified":"2014-01-18T15:16:48.22+02:00","text":"Şimdi sorunuzu tekrar okudum. İstediğinizi şu şekilde anlıyorum:
Kullanıcıların takip ettikleri kişilerin girmiş oldukları son 50 yorumu listelemek istiyorsunuz.
İlk okuduğumda takip edilenlerin yazmış oldukları son 50 yorum olarak algıladım. Siz sanırım sadece toplamda son 50 kaydı almak istiyorsunuz.
int uyeId=1; \r\nvar y = (from _y in db.Yorum\r\n where db.Takip.Where(t=> t.UyeId==uyeId).Select(t => t.TakipEdilenId).Contains(_y.UyeId) \r\n select _y).OrderByDescending(t => t.Tarih).Take(50); \r\n
Yukarıdaki ifade kullanıcıların takip listesinde olan diğer kullanıcıların girmiş oldukları son 50 kaydı getirir.
Sql sunucuda şu sorguyu çalıştırıcaktır.
SELECT TOP (5) \r\n[Extent1].[YorumId] AS [YorumId], \r\n[Extent1].[UyeId] AS [UyeId], \r\n[Extent1].[Yorumu] AS [Yorumu], \r\n[Extent1].[Tarih] AS [Tarih]\r\nFROM [dbo].[Yorums] AS [Extent1]\r\nWHERE EXISTS (SELECT \r\n\t1 AS [C1]\r\n\tFROM [dbo].[Takips] AS [Extent2]\r\n\tWHERE (1 = [Extent2].[UyeId]) AND ([Extent2].[TakipEdilenId] = [Extent1].[UyeId])\r\n)\r\nORDER BY [Extent1].[Tarih] DESC\r\ngo
Seçim kriteri olarak siz istediğiniz verileri belirterek performansını iyileştirebilirsiniz.
","upvoteCount":0},"answerCount":1,"suggestedAnswer":{"@type":"Answer","name":"Şimdi sorunuzu tekrar okudum. İstediğinizi şu şekilde anlıyorum:
Kullanıcıların takip ettikleri kişilerin girmiş oldukları son 50 yorumu listelemek istiyorsunuz.
İlk okuduğumda takip edilenlerin yazmış oldukları son 50 yorum olarak algıladım. Siz sanırım sadece toplamda son 50 kaydı almak istiyorsunuz.
int uyeId=1; \r\nvar y = (from _y in db.Yorum\r\n where db.Takip.Where(t=> t.UyeId==uyeId).Select(t => t.TakipEdilenId).Contains(_y.UyeId) \r\n select _y).OrderByDescending(t => t.Tarih).Take(50); \r\n
Yukarıdaki ifade kullanıcıların takip listesinde olan diğer kullanıcıların girmiş oldukları son 50 kaydı getirir.
Sql sunucuda şu sorguyu çalıştırıcaktır.
SELECT TOP (5) \r\n[Extent1].[YorumId] AS [YorumId], \r\n[Extent1].[UyeId] AS [UyeId], \r\n[Extent1].[Yorumu] AS [Yorumu], \r\n[Extent1].[Tarih] AS [Tarih]\r\nFROM [dbo].[Yorums] AS [Extent1]\r\nWHERE EXISTS (SELECT \r\n\t1 AS [C1]\r\n\tFROM [dbo].[Takips] AS [Extent2]\r\n\tWHERE (1 = [Extent2].[UyeId]) AND ([Extent2].[TakipEdilenId] = [Extent1].[UyeId])\r\n)\r\nORDER BY [Extent1].[Tarih] DESC\r\ngo
Seçim kriteri olarak siz istediğiniz verileri belirterek performansını iyileştirebilirsiniz.
","url":"https://uzmanim.net/soru/entity-framework-de-twitter-gibi-veri-dizme/2087#a2097","author":{"@type":"Person","name":"alattin"},"comment":{"@type":"Comment","name":"Cevap için çok teşekkürler tam istediğim gibi oldu. :)","author":{"@type":"Person","name":"berkorn"},"text":"Cevap için çok teşekkürler tam istediğim gibi oldu. :)"},"commentCount":1,"dateCreated":"2014-01-17T21:22:34+02:00","dateModified":"2014-01-18T15:16:48.22+02:00","text":"Şimdi sorunuzu tekrar okudum. İstediğinizi şu şekilde anlıyorum:
Kullanıcıların takip ettikleri kişilerin girmiş oldukları son 50 yorumu listelemek istiyorsunuz.
İlk okuduğumda takip edilenlerin yazmış oldukları son 50 yorum olarak algıladım. Siz sanırım sadece toplamda son 50 kaydı almak istiyorsunuz.
int uyeId=1; \r\nvar y = (from _y in db.Yorum\r\n where db.Takip.Where(t=> t.UyeId==uyeId).Select(t => t.TakipEdilenId).Contains(_y.UyeId) \r\n select _y).OrderByDescending(t => t.Tarih).Take(50); \r\n
Yukarıdaki ifade kullanıcıların takip listesinde olan diğer kullanıcıların girmiş oldukları son 50 kaydı getirir.
Sql sunucuda şu sorguyu çalıştırıcaktır.
SELECT TOP (5) \r\n[Extent1].[YorumId] AS [YorumId], \r\n[Extent1].[UyeId] AS [UyeId], \r\n[Extent1].[Yorumu] AS [Yorumu], \r\n[Extent1].[Tarih] AS [Tarih]\r\nFROM [dbo].[Yorums] AS [Extent1]\r\nWHERE EXISTS (SELECT \r\n\t1 AS [C1]\r\n\tFROM [dbo].[Takips] AS [Extent2]\r\n\tWHERE (1 = [Extent2].[UyeId]) AND ([Extent2].[TakipEdilenId] = [Extent1].[UyeId])\r\n)\r\nORDER BY [Extent1].[Tarih] DESC\r\ngo
Seçim kriteri olarak siz istediğiniz verileri belirterek performansını iyileştirebilirsiniz.
","upvoteCount":0},"upvoteCount":0}}Merhaba arkadaşlar, twitterdaki gibi takip edilenlerin son girdiklerini listelemeye çalışıyorum ama kafam karıştı. İlk önce kaç takipçisi olduğunu şu kod ile çekiyordum:
var kayitlar = (from u in Db.Takip where uyeId == u.UyeId select new NTakip { TakipId = u.TakipId, TakipEdilenId = u.TakipId }).ToList();
Bu kod bana takip edilenleri veriyordu ben burada bu takip edilenleri alıp:
var kayit = (from u in Db.Yorum.OrderByDescending(u => u.YorumId).Where(u => u.Onay == true).Where(u => u.UyeId == kayitlar[0].TakipEdilenId).Skip(sayfa * 50).Take(50) select new NYorum { YorumId = u.YorumId, UyeId = u.UyeId, Yorumu = u.Yorumu, Tarih = u.Tarih, IpAdres = u.IpAdres, Onay = u.Onay, UyeAdi = u.Uye.UyeAdi }).ToList();
Şurada araya sıkıştırdım ".Where(u => u.UyeId == kayitlar[0].TakipEdilenId)" bunun orda [0] la ilk kaydı alınmamış hali gibi hepsini dizip son 50sini almak istiyorum. Karışık anlattım galiba, kısa olarak twitterdaki gibi takipçileri dizip sonra bunların attığı YorumId sine göre 50şerli olarak dizmek istiyordum ama kullanıcıları birleştirip yorumId lerini alma kısmında kafam çok karıştı, nasıl yapabilirim acaba?
alattin 10 yıl önce
cevabı güncelledim. umarım bu sefer doğru anlamışımdır :)
Toplam 1 cevap
Şimdi sorunuzu tekrar okudum. İstediğinizi şu şekilde anlıyorum:
Kullanıcıların takip ettikleri kişilerin girmiş oldukları son 50 yorumu listelemek istiyorsunuz.
İlk okuduğumda takip edilenlerin yazmış oldukları son 50 yorum olarak algıladım. Siz sanırım sadece toplamda son 50 kaydı almak istiyorsunuz.
int uyeId=1; var y = (from _y in db.Yorum where db.Takip.Where(t=> t.UyeId==uyeId).Select(t => t.TakipEdilenId).Contains(_y.UyeId) select _y).OrderByDescending(t => t.Tarih).Take(50);
Yukarıdaki ifade kullanıcıların takip listesinde olan diğer kullanıcıların girmiş oldukları son 50 kaydı getirir.
Sql sunucuda şu sorguyu çalıştırıcaktır.
SELECT TOP (5) [Extent1].[YorumId] AS [YorumId], [Extent1].[UyeId] AS [UyeId], [Extent1].[Yorumu] AS [Yorumu], [Extent1].[Tarih] AS [Tarih] FROM [dbo].[Yorums] AS [Extent1] WHERE EXISTS (SELECT 1 AS [C1] FROM [dbo].[Takips] AS [Extent2] WHERE (1 = [Extent2].[UyeId]) AND ([Extent2].[TakipEdilenId] = [Extent1].[UyeId]) ) ORDER BY [Extent1].[Tarih] DESC go
Seçim kriteri olarak siz istediğiniz verileri belirterek performansını iyileştirebilirsiniz.
berkorn 10 yıl önce
Cevap için çok teşekkürler tam istediğim gibi oldu. :)