کوئری نویسی در EF Core - قسمت پنجم - اعمال تجمعی - بخش اول
نویسنده: وحید نصیری
تاریخ: ۱۳۹۹/۰۵/۰۹ ۱۱:۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
var count = context.Facilities.Count();
var count = context.Facilities.Count(x => x.GuestCost >= 10);
var members = context.Members
.Where(member => member.RecommendedBy != null)
.GroupBy(member => member.RecommendedBy)
.Select(group => new
{
RecommendedBy = group.Key,
Count = group.Count()
})
.OrderBy(result => result.RecommendedBy)
.ToList();
var facilities = context.Bookings
.GroupBy(booking => booking.FacId)
.Select(group => new
{
FacId = group.Key,
TotalSlots = group.Sum(booking => booking.Slots)
})
.OrderBy(result => result.FacId)
.ToList();
var date1 = new DateTime(2012, 09, 01);
var date2 = new DateTime(2012, 10, 01);
var facilities = context.Bookings
.Where(booking => booking.StartTime >= date1
&& booking.StartTime < date2)
.GroupBy(booking => booking.FacId)
.Select(group => new
{
FacId = group.Key,
TotalSlots = group.Sum(booking => booking.Slots)
})
.OrderBy(result => result.TotalSlots)
.ToList();
var date1 = new DateTime(2012, 01, 01);
var date2 = new DateTime(2013, 01, 01);
var facilities = context.Bookings
.Where(booking => booking.StartTime >= date1
&& booking.StartTime < date2)
.GroupBy(booking => new { booking.FacId, booking.StartTime.Month })
.Select(group => new
{
group.Key.FacId,
group.Key.Month,
TotalSlots = group.Sum(booking => booking.Slots)
})
.OrderBy(result => result.FacId)
.ThenBy(result => result.Month)
.ToList();
var count = context.Bookings.Select(booking => booking.MemId).Distinct().Count();
var facilities = context.Bookings
.GroupBy(booking => booking.FacId)
.Select(group => new
{
FacId = group.Key,
TotalSlots = group.Sum(booking => booking.Slots)
})
.Where(result => result.TotalSlots > 1000)
.OrderBy(result => result.FacId)
.ToList();
var facilities =
context.Bookings.Select(booking =>
new
{
booking.Facility.Name,
Revenue = booking.MemId == 0 ?
booking.Slots * booking.Facility.GuestCost
: booking.Slots * booking.Facility.MemberCost
})
.GroupBy(b => b.Name)
.Select(group => new
{
Name = group.Key,
TotalRevenue = group.Sum(b => b.Revenue)
})
.OrderBy(result => result.TotalRevenue)
.ToList();
var facilities =
context.Bookings.Select(booking =>
new
{
booking.Facility.Name,
Revenue = booking.MemId == 0 ?
booking.Slots * booking.Facility.GuestCost
: booking.Slots * booking.Facility.MemberCost
})
.GroupBy(b => b.Name)
.Select(group => new
{
Name = group.Key,
TotalRevenue = group.Sum(b => b.Revenue)
})
.Where(result => result.TotalRevenue < 1000)
.OrderBy(result => result.TotalRevenue)
.ToList();
var item = context.Bookings
.GroupBy(booking => booking.FacId)
.Select(group => new
{
FacId = group.Key,
TotalSlots = group.Sum(booking => booking.Slots)
})
.OrderByDescending(result => result.TotalSlots)
.FirstOrDefault();
var facilities = _db.Bookings.GroupBy(c=>c.Facility)
.Select(c => new
{
Name=c.Key.Name,
TotalRevenue = c.Sum(s=>s.MemId==0?
s.Slots*s.Facility.GuestCost:
s.Slots*s.Facility.MemberCost)
})
.OrderBy(result => result.TotalRevenue)
.ToList();