Paolo Pialorsi is a consultant, trainer, and author who specializes in developing distributed applications architectures and Microsoft SharePoint enterprise solutions. He is a founder of DevLeap, a company focused on providing content and consulting to professional developers. Paolo wrote "Programming Microsoft LINQ" and "Introducing Microsoft LINQ" both published by Microsoft Press, and is the author of three books in Italian language about XML and Web Services. He is also a regular speaker at industry conferences.
Marco Russo is a founder of DevLeap. He is a regular contributor to developer user communities and is an avid blogger on Microsoft SQL Server Business Intelligence and other Microsoft technologies. Marco provides consulting and training to professional developers on the Microsoft .NET Framework and Microsoft SQL Server. He wrote "Programming Microsoft LINQ" and "Introducing Microsoft LINQ" with Paolo Pialorsi, "Expert Cube Development with Microsoft SQL Server 2008 Analysis Services" with Alberto Ferrari and Chris Webb, and is the author of two books in Italian about C# and the common language runtime.
Preface; Acknowledgments; Introduction; Who Is This Book For?; Organization of This Book; Conventions and Features in This Book; System Requirements; The Companion Website; Find Additional Content Online; Errata & Book Support; We Want to Hear from You; Stay in Touch; Part I: LINQ Foundations; Chapter 1: LINQ Introduction; 1.1 What Is LINQ?; 1.2 Why Do We Need LINQ?; 1.3 How LINQ Works; 1.4 Language Integration; 1.5 LINQ Implementations; 1.6 Summary; Chapter 2: LINQ Syntax Fundamentals; 2.1 LINQ Queries; 2.2 Query Keywords; 2.3 Deferred Query Evaluation and Extension Method Resolution; 2.4 Some Final Thoughts About LINQ Queries; 2.5 Summary; Chapter 3: Linq to Objects; 3.1 Query Operators; 3.2 Conversion Operators; 3.3 Summary; Part II: LINQ to Relational; Chapter 4: Choosing Between LINQ to SQL and LINQ to Entities; 4.1 Comparison Factors; 4.2 When to Choose LINQ to Entities and the Entity Framework; 4.3 When to Choose LINQ to SQL; 4.4 Other Considerations; 4.5 Summary; Chapter 5: LINQ to SQL: Querying Data; 5.1 Entities in LINQ to SQL; 5.2 Data Modeling; 5.3 Data Querying; 5.4 Thinking in LINQ to SQL; 5.5 Summary; Chapter 6: LINQ to SQL: Managing Data; 6.1 CRUD and CUD Operations; 6.2 Database Interaction; 6.3 Databases and Entities; 6.4 Summary; Chapter 7: LINQ to SQL: Modeling Data and Tools; 7.1 File Types; 7.2 SQLMetal; 7.3 Using the Object Relational Designer; 7.4 Summary; Chapter 8: LINQ to Entities: Modeling Data with Entity Framework; 8.1 The Entity Data Model; 8.2 Associations and Foreign Keys; 8.3 Complex Types; 8.4 Inheritance and Conditional Mapping; 8.5 Modeling Stored Procedures; 8.6 POCO Support; 8.7 T4 Templates; 8.8 Summary; Chapter 9: LINQ to Entities: Querying Data; 9.1 EntityClient Managed Providers; 9.2 LINQ to Entities; 9.3 ObjectQuery and ObjectContext; 9.4 Query Performance; 9.5 Summary; Chapter 10: LINQ to Entities: Managing Data; 10.1 Managing Entities; 10.2 Using ObjectStateManager and EntityState; 10.3 Managing Concurrency Conflicts; 10.4 Managing Transactions; 10.5 Detaching, Attaching, and Serializing Entities; 10.6 Using Self-Tracking Entities; 10.7 Summary; Chapter 11: LINQ to DataSet; 11.1 Introducing LINQ to DataSet; 11.2 Using LINQ to Load a DataSet; 11.3 Using LINQ to Query a DataSet; 11.4 Summary; Part III: LINQ to XML; Chapter 12: LINQ to XML: Managing the XML Infoset; 12.1 Introducing LINQ to XML; 12.2 LINQ to XML Programming; 12.3 Reading, Traversing, and Modifying XML; 12.4 Summary; Chapter 13: LINQ to XML: Querying Nodes; 13.1 Querying XML; 13.2 Understanding Deferred Query Evaluation; 13.3 Using LINQ Queries over XML; 13.4 Transforming XML with LINQ to XML; 13.5 Support for XSD and Validation of Typed Nodes; 13.6 Support for XPath and System.Xml.XPath; 13.7 Securing LINQ to XML; 13.8 Serializing LINQ to XML; 13.9 Summary; Part IV: Advanced LINQ; Chapter 14: Inside Expression Trees; 14.1 Lambda Expressions; 14.2 What Is an Expression Tree?; 14.3 Dissecting Expression Trees; 14.4 Visiting an Expression Tree; 14.5 Dynamically Building an Expression Tree; 14.6 Summary; Chapter 15: Extending LINQ; 15.1 Custom Operators; 15.2 Specialization of Existing Operators; 15.3 Creating a Custom LINQ Provider; 15.4 Summary; Chapter 16: Parallelism and Asynchronous Processing; 16.1 Task Parallel Library; 16.2 PLINQ; 16.3 Reactive Extensions for .NET; 16.4 Summary; Chapter 17: Other LINQ Implementations; 17.1 Database Access and ORM; 17.2 Data Access Without a Database; 17.3 LINQ to Services; 17.4 LINQ for System Engineers; 17.5 Dynamic LINQ; 17.6 Other LINQ Enhancements and Tools; 17.7 Summary; Part V: Applied LINQ; Chapter 18: LINQ in a Multitier Solution; 18.1 Characteristics of a Multitier Solution; 18.2 LINQ to SQL in a Two-Tier Solution; 18.3 LINQ in an n-Tier Solution; 18.4 LINQ in the Business Layer; 18.5 Summary; Chapter 19: LINQ Data Binding; 19.1 using LINQ with ASP.NET; 19.2 using LINQ with WPF; 19.3 using LINQ with Silverlight; 19.4 using LINQ with Windows Forms; 19.5 Summary;