簡體   English   中英

實體框架中的自聯接Lambda查詢

[英]self join Lambda query in Entity Framework

我的代碼是

    var model = dt.FishEventScheduleVaccination
            .Join(
                dt.FishEventSchedule,
                vaccination => vaccination.ScheduleId,
                schedule => schedule.ScheduleId,
                (vaccination, schedule) => new { vaccination, schedule }
            )
            .Select(q=>new {
                q.vaccination,
                q.schedule
            })
            .Where(w=>w.schedule.Start>DateTime.Now).ToList();
        var rtn=new List<FishEventScheduleVaccination>();
        foreach (var m in model) {
            var item = m.vaccination;
            item.FishEventSchedule = m.schedule;
            rtn.Add(item);
        }

我只想使用lambda查詢,而不要使用foreach。 我能怎么做? 可能嗎?

from r in Entities.tbl join q in Entities.tbl on r.Id equals q.Id2 select new
{
    Id = r.Column + " " + r.Column, Data = q.Column + " " + q.Column 
};

我認為這應該可以解決您的查詢

要么

您也可以嘗試以下操作:

db.DTOPageSets.Join(db.DTOPageSets
                    .AsEnumerable(), a => a.ContentPageID, b => b.CategoryID, (a, b) => a);

嘗試以下方法:

dt.FishEventScheduleVaccination
    .Join(dt.FishEventSchedule,
          vaccination => vaccination.ScheduleId,
          schedule => schedule.ScheduleId,
          (vaccination, schedule) => new { vaccination, schedule })
    .Where(w => w.schedule.Start > DateTime.Now)
    .AsEnumerable()
    .Select(q => { q.vaccination.FishEventSchedule = q.schedule; return q.vaccination; })
    .ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM