加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – LINQ to SQL急切加载条件

发布时间:2020-12-15 04:22:19 所属栏目:百科 来源:网络整理
导读:我正在尝试学习LINQ to SQL,并且我已经发现了LoadWith函数.我找到的所有示例都将加载您在LoadWith函数中指定的表中的所有记录,例如 var dlo = new DataLoadOptions();dlo.LoadWithBlog(b = b.Posts);this.LoadOptions = dlo; 我想知道的是,是否可以在此示例
我正在尝试学习LINQ to SQL,并且我已经发现了LoadWith函数.我找到的所有示例都将加载您在LoadWith函数中指定的表中的所有记录,例如
var dlo = new DataLoadOptions();
dlo.LoadWith<Blog>(b => b.Posts);
this.LoadOptions = dlo;

我想知道的是,是否可以在此示例中加载最后一篇博文?

我试过了

dlo.LoadWith<Blog>(b => b.Posts.Max());

但它不喜欢那种语法.

解决方法

你可以使用AssociateWith来做到这一点.这将有效:
var options = new DataLoadOptions();
options.AssociateWith<Blog>(b => 
    b.Posts.Where(
        p1 => p1.SomeColumn == b.Posts.Max(p2 => p2. SomeColumn)
    ));

此外,如果您要将信息加载到单独的类中或者可以使用匿名类,则可以执行以下查询:

var query = from b in context.Blogs
            //probably some where you already have
            select new MyBlogs // or with no type in case it is anonymous
            {
                AColumn = b.AColumn,//map any other values
                LatestPost = b.Posts.Where(
                      p1 => p1.SomeColumn == b.Posts.Max(p2 => p2. SomeColumn)
                  )).ToList()
            }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读