Skip to content

Commit

Permalink
Add remaining blog posts and fix up a first two.
Browse files Browse the repository at this point in the history
  • Loading branch information
mattwar committed Oct 5, 2019
1 parent 2cad72c commit 2b04bb4
Show file tree
Hide file tree
Showing 17 changed files with 12,394 additions and 4 deletions.
13 changes: 9 additions & 4 deletions docs/blog/building-part-1.md → docs/blog/building-part-01.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
# LINQ: Building an IQueryable Provider - Part I
# LINQ: Building an IQueryable Provider - Part I: Reusable IQueryable base classes

Matt Warren - MSFT; July 30, 2007

This is the first in a series of posts on how to build a LINQ IQueryable provider. Each post builds on the last one.

---

I’ve been meaning for a while to start up a series of posts that covers building LINQ providers using `IQueryable`.
People have been asking me advice on doing this for quite some time now, whether through internal Microsoft email
or questions on the forums or by cracking the encryption and mailing me directly.
Expand Down Expand Up @@ -41,7 +45,7 @@ The second property gives you the expression that corresponds to the query.
This is quintessential essence of IQueryable’s being.
The actual ‘query’ underneath the hood of an `IQueryable` is an expression that represents the query as a tree of LINQ query operators/method calls.
This is the part of the `IQueryable` that your provider must comprehend in order to do anything useful.
If you look deeper you will see that the whole `IQueryable` infrastructure (including the System.Linq.Queryable version of LINQ standard query operators)
If you look deeper you will see that the whole `IQueryable` infrastructure (including the `System.Linq.Queryable` version of LINQ standard query operators)
is just a mechanism to auto-construct expression tree nodes for you.
When you use the `Queryable.Where` method to apply a filter to an `IQueryable`,
it simply builds you a new `IQueryable` adding a method-call expression node on top of the tree representing the call you just made to `Queryable.Where`.
Expand Down Expand Up @@ -221,8 +225,9 @@ That
And that’s what I’ll start showing next time.


---
UPDATE:
<br/>

## UPDATE:


It looks like I’ve forget to define a little helper class my implementation was using, so here it is:
Expand Down
Loading

0 comments on commit 2b04bb4

Please sign in to comment.