Book Image

WCF 4.0 Multi-tier Services Development with LINQ to Entities

By : Mike Liu
Book Image

WCF 4.0 Multi-tier Services Development with LINQ to Entities

By: Mike Liu

Overview of this book

WCF is the Microsoft model for building services, whereas LINQ to Entities is the Microsoft ORM for accessing underlying data storage. Want to learn both? You would normally have to dig through huge reference tomes—so wouldn't you agree that a simple-to-follow practical tutorial on WCF and LINQ to Entities is the way to get ahead?This book is the quickest and easiest way to learn WCF and LINQ to Entities in Visual Studio 2010. WCF and LINQ to Entities are both powerful yet complex technologies from Microsoft—but you will be surprised at how easily this book will get you get up and running with them.Mastery of these two topics will quickly enable you to create Service-Oriented applications, and allow you to take your first steps into the world of Service Oriented Architecture without becoming overwhelmed.Through this book, you will learn what's going on behind the scenes with WCF, and dive into the basic yet most useful techniques for LINQ to Entities. You will develop three real-world multi-tiered WCF services from beginning to end, with LINQ to Entities being used in the data access layer of the services. Various clients including windows console applications, the WCF Test Client, Windows Form applications and WPF applications will be created to test these WCF services. By the end of this book, you will be 100% confident that you know WCF and LINQ to Entities, not only in theory, but with sound real-world experience.
Table of Contents (16 chapters)
WCF 4.0 Multi-tier Services Development with LINQ to Entities
Credits
About the Author
About the Reviewers
Preface
Index

Compiled query


It is common in many applications to execute structurally similar queries many times. In such cases it is possible to increase performance by compiling the query once and executing it several times in the application with different parameters. This result is obtained in LINQ to Entities by using the CompiledQuery class.

The following code shows how to define a compiled query:

static void TestCompiledQuery()
{
   NorthwindEntities NWEntities = new NorthwindEntities();

   Func<NorthwindEntities, string, IQueryable<Product>> fn
   = CompiledQuery.Compile((NorthwindEntities NW, string category) =>
      from p in NW.Products
      where p.Category.CategoryName == category
      select p);
  var products1 = fn(NWEntities, '"Beverages'");
  Console.WriteLine('"Total products in category Beverages: {0}'",
      products1.Count());
  var products2 = fn(NWEntities, '"Seafood'");
  Console.WriteLine('"Total products in category Seafood: {0}'",
      products2.Count(...