All mistakes found in the first edition of LINQ in Action are posted here.
If you discover any mistakes in the book, you may post them as a comment to the errata for the second edition or in the forum.
Chapter 3, page 91, Listing 3.5
Add a pointer to QueryReuse.csproj in the caption.
Chapter 3, page 92
Add a note. See this forum post.
Chapter 4, Page 128, Listing 4.7
Inherits=" Step1" has an unnecessary space
Chapter 4, page 133, line 8
Comma missing at the end of the line, after "select new { book.Title, book.Price"
Chapter 4, page 151, line 9
The listing should be:
from book in SampleData.Books
group book by book.Publisher into publisherBooks
select new {
Publisher=publisherBooks.Key.Name,
Books=publisherBooks,
Count = publisherBooks.Count() };
Chapter 4, page 154, line 3 in section Cross join
isasequencethatcontainsacombonationofeach ismissingappropriatespaces
Chapter 4, page 157, listing 4.29
#1's do not belong here
SampleData.Books and .Select... should be indented with two more spaces
Chapter 6, page 216
The SQL query that is
executed against the database as a result of running the Listing 6.8 /
6.9 example, is mentioned to be "SELECT TOP 2 [t1].[Title],
[t1].[Price]...", but the SQL that is actually being generated by these
listings appears to be slightly different:
SELECT [t1].[Title], [t1].[Price]
FROM (SELECT ROW_NUMBER() OVER (ORDER BY [t0].[Title], [t0].[Price]) AS [ROW_NUMBER], [t0].[Title], [t0].[Price]
FROM [dbo].[Book] AS [t0]) AS [t1]
WHERE [t1].[ROW_NUMBER] BETWEEN @p0 + 1 AND @p0 + @p1
ORDER BY [t1].[ROW_NUMBER]
Chapter 6, page 219, first query
book.PubDate should be be book.PublicationDate (twice)
Chapter 6, page 223
System.Enumerable.Linq.Join should be System.Linq.Enumerable.Join
Chapter 6, page 227"From
an object perspective, when we fetch the list of subjects, we don't
know if there are any associated books attached to each book." should
be "From an object perspective, when we fetch the list of subjects, we
don't know if there are any associated books attached to each subject."
Chapter 6, page 231, section 6.5.2"Thus,
we could change our earlier implementation to indicate that we want to
load all of the customers once..." should be "Thus, we could change our
earlier implementation to indicate that we want to load all of the subjects once..."
Chapter 7, page 244, paragraph 3, line 1 "So
far in this chapter we've focused on the three main attributes --
Table, Column, and Attribute." should be "So far in this chapter we've
focused on the three main attributes -- Table, Column, and Association."
Chapter 7, page 258, end of the second-last paragraph
After the sentence "If the requested object is not in the cache, the database will be queried." there should be "This optimization did not make it into the initial release, but may return in future updates."
Chapter 8, page 287, Listing 8.16
The
preceding paragraph says: "Here we see the code generated by the
designer." However, the code sample represents the customized method,
not the auto-generated method. The text should be "Here we see custom
code that supplies additional information."
Chapter 8, Page 303, paragraph 2
"Set the name of the property to PropertyId." should be "Set the name of the property to PublisherId", and PublisherId should be in Courier.
Chapter 9, Page 327
LoadOptions.PerserverWhiteSpace should be LoadOptions.PreserveWhiteSpace
Chapter 10, page 376, line 13
Sytem should be System
Chapter 12, Page 473
The #2 in the second example doesn't belong there.
Chapter 13, page 513, line 1
EntitySpaces has no real support for LINQ and so shouldn't be in the list
More Titles From Manning (page 543)
"C++/CLI In Action" is referred to as "C##/CLI in Practice"