Exemple #1
0
        private static IQueryable <RecordItem> GetQuery_1(Example2Context context)
        {
            int programTypeId = 6;

            var query = context.UnusedData
                        .Where(x => TestID.Test_IDS.Contains(x.CorelogicDataID))
                        .Join(context.DataProgramtype.Where(x => x.ProgramTypeID == programTypeId),
                              d => new { d.CorelogicDataID }, p => new { p.CorelogicDataID }, (d, p) => d
                              ).GroupJoin(context.UnusedDataOrder
                                          .Where(i => i.ProgramTypeId == programTypeId)
                                          .Select(i => new { i.CorelogicDataId, i.DropDate }),
                                          d => d.CorelogicDataID, o => o.CorelogicDataId,
                                          (data, dataOrders) => new { data, dataOrders }
                                          ).SelectMany(i => i.dataOrders.DefaultIfEmpty(),
                                                       (aggregate, dataOrder) => new {
                aggregate.data.CorelogicDataID,
                aggregate.data.Property_State,
                DropDate = (DateTime?)dataOrder.DropDate
            }
                                                       ).GroupBy(i => new { i.CorelogicDataID, i.Property_State },
                                                                 i => i.DropDate
                                                                 ).Select(i => new RecordItem()
            {
                CorelogicDataID = i.Key.CorelogicDataID,
                Property_State  = i.Key.Property_State,
                UsageCount      = i.Count(),
                LastUsedDate    = i.Max()
            }
                                                                          ).OrderBy(d => d.UsageCount);

            return(query);
        }
Exemple #2
0
        public static List <RecordItem> Load()
        {
            using (var context = new Example2Context())
            {
                var query = GetQuery_2(context);

                //Console.WriteLine(query.ToQueryString());
                var data = query.ToListAsync().Result;
                return(data);
            }
        }