与LINQ到SQL编写内联选择查询(write inline select query with L

2019-10-30 06:59发布

如果赦免标题是不正确的..

如何写下面的SQL查询使用LINQ没有将它在多个部分为sql?

select BookName,
       Author,
       TotalCopies=(select COUNT(*) 
                    from tbEHBookCopies c 
                    where c.BookID=b.BookID) 
from dbo.tbEHBooks b

Answer 1:

我不知道你所说的多个部分的意思。 如果你的意思,它应该是在一个单一的查询,那么你可以这样做:

var allBooks = db.tbEHBooks.Select(x => new 
{
    x.BookName,
    x.Author,
    x.TotalCopies = db.tbEHBookCopies.Select(y => x.BookID == y.BookID).Count()
});


Answer 2:

使用查询语法加盟和分组。 LINQ-SQL是一点点不同,当谈到分组。 这个语法的好处是,它很容易在多个表中加入。 它看起来更像是一个SQL查询只“从”是第一位的,而“选择”排在最后。

var bookQry = from b in db.tbEHBooks
              join c in db.tbEHBookCopies on b.BookID equals c.BookID
              group b by b into books
              select new { books.Key.BookName,
                           books.Key.Author,
                           TotalCopies = books.Count() };


文章来源: write inline select query with LINQ to SQl
标签: linq-to-sql