PDA

View Full Version : سوال: بدست آوردن بیشترین کلمات جستجو شده داخل سایت با استفاده از linq



ho3ink2
جمعه 09 اسفند 1392, 10:50 صبح
با سلام.
سوال به وضوح صورت مسئله رو بیان کرده ولی جهت توضیحات بیشتر:

بنده جهت داشتن آمار کلمات جستجو شده در سایتی ، کلماتی که از جانب کاربران جستجو شده را در بانک اطلاعاتی ذخیره می کنم ، حالا در قسمتی از سایت می خوام بیشترین کلمات جستجو شده را نمایش دهم اما با استفاده از Linq و در نهایت هم می خوام اطلاعات در قالب <IEnumerable<Keywords باشه.



جزئیات جدول مذکور:
SearchId
Keyword
Username
SearchDate

قبل ایجاد تاپیک به شدت آزمون و خطا کردم اما به مورد مطلوبم نرسیدم.

نمونه هایی از آزمون و خطاها:

IEnumerable<KeywordViewModel> q = db.Keywords.SqlQuery(@"SELECT *,Keyword,Count(*) as number FROM Keywords GROUP By Keyword order by keyword");

IEnumerable<KeywordViewModel> query = (from q in db.Keywords group q by q.Keyword into Count select new KeywordViewModel { Count = Count.ToString(), Keyword = Count.Select(x => x.Keyword).ToString() }).AsEnumerable();

*KeywordViewModel= کلاس ساخته شده جهت ذخیره کلمات جستجو شده و تعداد آنها

Mahmoud.Afrad
جمعه 09 اسفند 1392, 19:11 عصر
وقتی گروهبندی کردی key همان چیزیه که براساس اون گروهبندی کردی و برای تعداد هم میتونی از متد Count برای هر گروه استفاده کنی. نام متغیرها رو هم مناسب انتخاب کن که با نام متدها اشتباه نگیری:

IEnumerable<KeywordViewModel> query = from q in db.Keywords
group q by q.Keyword into g
select new KeywordViewModel
{
Count = g.Count(),
Keyword = g.Key
};