Welcome to MSDN Blogs Sign in | Join | Help

Browse by Tags

All Tags » Code » Object Relation... » SQL   (RSS)
This is the twelfth in a series of posts on how to build a LINQ IQueryable provider. If you have not read the previous posts you probably were born yesterday. How could you possibly make sense of this post without any context at all? At least make an attempt. Sometimes I don't know why I bother. Read More...
This is the eleventh in a series of posts on how to build a LINQ IQueryable provider. If you have not read the previous posts you’ll want to do so before proceeding, or at least before proceeding to copy the code into your own project and telling your boss you single-handedly solved the data layer problem over the weekend. Read More...
This is the tenth in a series of posts on how to build a LINQ IQueryable provider. If you have not read the previous posts you'll want to find a nice shady tree, relax and meditate on why your world is so confused and full of meaningless tasks that it has kept you from pursuing the perfection of writing IQueryable providers. Read More...
So, again you thought I was done with this series, that I've given up and moved on to greener pastures. You think that since Select works wonderfully that that's all you need to know to make your own IQueryable provider? Ha! There's loads more to know. And, by the way, Select is still broken. Read More...
Over the past four parts of this series I have constructed a working LINQ IQueryable provider that targets ADO and SQL and has so far been able to translate both Queryable.Where and Queryable.Select standard query operators. Yet, as big of an accomplishment that has been there are still a few gaping holes and I’m not talking about other missing operators like OrderBy and Join. I’m talking about huge conceptual gaffs that will bite anyone that strays from my oh-so-ideally crafted demo queries. Read More...
I just could not leave well enough alone. I had the crude LINQ provider working with just a translation of the Where method into SQL. I could execute the query and convert the results into my objects. But that’s not good enough for me, and I know it’s not good enough for you. You probably want to see it all; the transformation of a little sample program into a full-fledged working ORM system. Well, I’m probably not going to do that. However, I still think there’s a lot of common ground I can cover, that you can make use of in your provider, by showing you how I’m going to implement Select. Read More...
Part III? Wasn’t I done in the last post? Didn’t I have the provider actually working, translating, executing and returning a sequence of objects? Sure, that’s true, but only just so. The provider I built was really fragile. It only understood one major query operator and a few minor ones like comparison, etc. However, real providers are going to have to deal with many more operators and complicated interactions between them. For example, that provider did not even let you project the data into new shapes. How one goes about doing that is non-obvious. Read More...
Now, that I’ve laid the groundwork defining a reusable version of IQueryable and IQueryProvider, namely Query and QueryProvider, I’m going to build a provider that actually does something. As I said before, what a query provider really does is execute a little bit of ‘code’ defined as an expression tree instead of actual IL. Of course, it does not actually have to execute it in the traditional sense. For example, LINQ to SQL translates the query expression into SQL and sends it to the server to execute it. Read More...
Rico has his third installment on LINQ to SQL performance up on his site and he finally lets us in on what he thinks the problems are/were. Read More...
Rico continues his series on LINQ to SQL performance. In this post he takes a look at the breakdown of where the time is being spent. It's not looking good for the extra overhead of query translation. Rico ponders a solution. Read More...
Rico Mariani, our performance expert amongst other things, has a blog post detailing worst case peformance shown by LINQ to SQL in last May's CTP. You can see for yourself that performance really sucked. :-) Fortunately, that was the prototype and lots Read More...
Ian Cooper has written a great article talking about LINQ to SQL and persistence ignorance, and his successes using TDD with projects using LINQ to SQL. I don't normally link to someone else's post. Especially with such a great title. But what-the-heck, Read More...
The primary purpose of any ORM system is to map relational data onto objects in your programming environment. Mapping here refers to the meaning in the mathematical sense that there is a correspondence from one item to the other. For example, a database row might map to an object, or a field in a database might map to a property. Some mappings are simple, like the ones I’ve already mentioned; others are more complex such as parts of multiple rows combining to form a single object. Read More...
LINQ to SQL, possibly Microsoft’s first OR/M to actually ship in ten years of trying, was never even supposed to exist. Read More...
A new update to LINQ preview is available at MSDN site. What's the coolest new feature? IMHO, its IQueryable<T>. DLINQ's query mechanism has been generalized and available for all to use as part of System.Query. It implements the Standard Query Read More...
 
Page view tracker