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查询

  • 相关阅读:
    题目3:爬楼梯
    题目1:删除排序数组中的重复数字
    最近目标
    软件工程----个人总结
    软件工程第二次作业——结对编程
    软件工程第一次作业补充
    爬楼梯
    买卖股票的最佳时机
    删除排序数组中的重复数字
    思考题
  • 原文地址:https://www.cnblogs.com/leco/p/11119150.html
Copyright © 2011-2022 走看看