Linq to sql 使用LINQ将内联选择查询写入SQl
如果头衔不合适,请原谅 如何使用linq to sql编写下面的sql查询,而不将其分成多个部分Linq to sql 使用LINQ将内联选择查询写入SQl,linq-to-sql,Linq To Sql,如果头衔不合适,请原谅 如何使用linq to sql编写下面的sql查询,而不将其分成多个部分 select BookName, Author, TotalCopies=(select COUNT(*) from tbEHBookCopies c where c.BookID=b.BookID) from dbo.tbEHBooks b 我不知道你说的多个部分是什么意思。如果您的
select BookName,
Author,
TotalCopies=(select COUNT(*)
from tbEHBookCopies c
where c.BookID=b.BookID)
from dbo.tbEHBooks b
我不知道你说的多个部分是什么意思。如果您的意思是它应该在一个查询上,那么您可以执行以下操作:
var allBooks = db.tbEHBooks.Select(x => new
{
x.BookName,
x.Author,
x.TotalCopies = db.tbEHBookCopies.Select(y => x.BookID == y.BookID).Count()
});
使用查询语法连接和分组。LINQSQL在分组方面有点不同。这种语法的优点是可以很容易地加入更多的表。而且它看起来更像一个SQL查询,只有“from”排在第一位,“select”排在最后
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() };
此处是否需要任何语法更改?由于某些原因,其显示错误。'BookName','Author'在当前上下文中不存在现在这意味着什么“非发票成员'tbEHBookCopies'不能像方法一样使用”?我做了额外的更改。