码迷,mamicode.com
首页 > 其他好文 > 详细

EF join

时间:2017-05-04 13:22:21      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:pre   div   外键   查询   select   logs   style   try   user   

两张表:

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

 

EF join

标签:pre   div   外键   查询   select   logs   style   try   user   

原文地址:http://www.cnblogs.com/ecolin/p/EF.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!