如果标题不合适,请原谅..
如何用linq写sql查询到sql而不将它分成多个部分?
select BookName,
Author,
TotalCopies=(select COUNT(*)
from tbEHBookCopies c
where c.BookID=b.BookID)
from dbo.tbEHBooks b
答案 0 :(得分:0)
我不确定你的意思是多个部分。如果你的意思是它应该在一个查询上,那么你可以做类似的事情:
var allBooks = db.tbEHBooks.Select(x => new
{
x.BookName,
x.Author,
x.TotalCopies = db.tbEHBookCopies.Select(y => x.BookID == y.BookID).Count()
});
答案 1 :(得分:0)
使用查询语法加入和分组。 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() };