zoukankan      html  css  js  c++  java
  • EF join

    两张表:

    var query = db.Categories         // 第一张表
       .Join(db.CategoryMaps,         // 第二张表
          c => c.CategoryId,          // 主键
          cm => cm.ChildCategoryId,   // 外键
          (c, cm) => new { Category = c, CategoryMap = cm }) // 关联后的结果对象集
       .Select(x => x.Category);  // select 查询结果集

    多张表:

    var fullEntries = dbContext.tbl_EntryPoint  //第一张表
        .Join(
            dbContext.tbl_Entry,          //第二张表
            entryPoint => entryPoint.EID,
            entry => entry.EID,
            (entryPoint, entry) => new { entryPoint, entry }
        )
        .Join(
            dbContext.tbl_Title,          //第三张表
            combinedEntry => combinedEntry.entry.TID,
            title => title.TID,
            (combinedEntry, title) => new 
            {
                UID = combinedEntry.entry.OwnerUID,
                TID = combinedEntry.entry.TID,
                EID = combinedEntry.entryPoint.EID,
                Title = title.Title
            }
        )
        .Where(fullEntry => fullEntry.UID == user.UID)
        .OrderBy(p=>p.UID)
        .Take(10);

    优点:coding方便

    缺点:join多张表的情景,代码冗长

    替代方法:创建数据库视图,对视图进行EF查询

  • 相关阅读:
    01-面向对象
    12-期末作业
    11-Linux-vim /bash
    组播地址
    rip
    华为hcnp r&s考试一共有三门,R&S-IERS,R&S-IENP,R&S-IEEP

    spring注解开发
    yml和properties的加载顺序和区别
    @ImportResource
  • 原文地址:https://www.cnblogs.com/leco/p/11119150.html
Copyright © 2011-2022 走看看