我正在使用 C# 在 Visual Studio 11 中为库创建一个简单的应用程序。
简而言之,它与数据库(SQL Server)交互以在数据库中注册一本新书。
系统会提示用户输入书名、作者、语言、年份、图书出版商和图书 ID。所有这些都是名为 的表中的列BookInformation
。还有另一个表称为Categories
。现在这个表根本不重要,因为这个表的功能还没有实现。
我们总是在谈论书籍,而不是杂志(例如)。
我想问你如何进行正确的查询以在一行中显示存储在数据库中的每本书的所有信息。
到目前为止我所做的是:
var allBooks = from p in db.BookInformation
where p.CategoryId == "BOOKS"
orderby p.BookName
select p;
Console.WriteLine("All books in database:");
foreach (var item in allBooks)
{
Console.WriteLine(" - {0}, {1}, {2}, {3}, {4}", item.BookName, item.Author, item.Year, item.Language, item.BookId);
}
它给出了非常奇怪的结果,而且很明显它是错误的。我该怎么办,有什么想法吗?
谢谢
编辑 - 这是它产生的 sql
SELECT
[Extent1].[BookId] AS [BookId],
[Extent1].[BookName] AS [BookName],
[Extent1].[Author] AS [Author],
[Extent1].[Publisher] AS [Publisher],
[Extent1].[Year] AS [Year],
[Extent1].[Language] AS [Language],
[Extent1].[CategoryId] AS [CategoryId],
[Extent1].[TimeOfRegistrating] AS [TimeOfRegistrating]
FROM
[dbo].[BookInfoes] AS [Extent1]
WHERE
N'BOOKS' = [Extent1].[CategoryId]
ORDER BY
[Extent1].[BookName] ASC