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

  • 相关阅读:
    转载的,讲解java.util的集合类
    LinkedList
    数据结构
    随笔
    spring boot初步尝试
    spring boot
    java8 新特性
    volatile 续
    java 线程基础学习
    java 基础
  • 原文地址:https://www.cnblogs.com/leco/p/11119150.html
Copyright © 2011-2022 走看看