我正在尝试学习 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()
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)