我试图在 linq to Sql 中使用聚合方法,但看起来它不受支持。
LibrarySystemDataContext ctx = new LibrarySystemDataContext();
var query = ctx.Books
.Select(x => new
{
BookID = x.BookID,
BookName = x.Title,
Authors = x.AuthorBooks.Select(a => a.Author)
.Aggregate(new StringBuilder(), (sb, r) => sb.Append(r.FirstName + " " + r.LastName +"& "), sb => sb.ToString())
});
要使用 Aggregate,我立即将书籍转换为 IEnumerable,如下所示:
var query = ctx.Books.AsEnumerable()
.Select(x => new
{
BookID = x.BookID,
BookName = x.Title,
Authors = x.AuthorBooks.Select(a => a.Author)
.Aggregate(new StringBuilder(), (sb, r) => sb.Append(r.FirstName + " " + r.LastName +"& "), sb => sb.ToString())
});
而且,这是有效的。我想知道如果我写这样的查询会有什么缺点或设计缺陷。