首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

ef 3表关联查询

2013-07-04 
ef 三表关联查询/// 会议名称public class HY{public int HYID { get set }public virtual ListHYDD H

ef 三表关联查询
/// 会议名称
    public class HY
    {
        public int HYID { get; set; }
        public virtual List<HYDD> HYDD { get; set; }
    }
/// 会议地点
    public class HYDD
    {
        public int HYDDID { get; set; }

        public int HYID { get; set; }

        public int ZYID { get; set; }

        public ZY ZY { get; set; }
    }
///会议室资源
    public class ZY
    {
        public int ZYID { get; set; }
        public string Name { get; set; }
    }

int ZYID=2;
List<int> ZYIDs = {2,5,8};

显示会议列表
var tab = from s in db.HYs.Include(h => h.HYDD.Select(c => c.ZY))
          select s;
查一个ZYID时可以这样写:
    tab = tab.Where(s => s.HYDD.Select(d => d.ZY.ZYID ).Contains(ZYID));

查ZYIDs时该怎么写?
    tab = tab.Where(s =>ZYIDs.Contains(s.HYDD.Select(d => d.ZY.ZYID)))报错呀
[解决办法]
  tab = tab.Where(s => s.HYDD.Select(d => d.ZY.ZYID).Any(x=>ZYIDs.Contains(x.ZYID)));

热点排行