0

ラムダ式 (Entity Framework または Micro ORM) を使用して次のクエリを使用するにはどうすればよいですか?

    SELECT a.RestaurantID
        ,MAX(a.EventDate) LastPeriodCloseDate
    FROM (
        SELECT RestaurantID
            ,EventType
            ,EventDate
        FROM SystemCalendar
        WHERE EventType = 'P'
       ) a
   GROUP BY RestaurantID
   HAVING MAX(a.EventDate) BETWEEN '2014-10-31'
         AND '2015-03-31'
4

1 に答える 1

0

内部選択は必要ありません。これを行うことができます:

DateTime start = new DateTime(2014, 10, 31);
DateTime end = new DateTime(2015, 3, 31);

var query = _db.SystemCalendar
               .Where(x => x.EventType == "P")
               .GroupBy(x => x.RestaurantID, 
                        x => new 
                        { 
                          RestaurantID = x.Key, 
                          LastPeriodCloseDate = x.Max(y => y.EventDate) 
                        })
               .Where(x => x.LastPeriodCloseDate >= start && 
                           x.LastPeriodCloseDate < end);
于 2014-10-20T18:46:19.700 に答える