21.0 Introduction

Object-Relational Mapping (O/RM) is a practice that allows you to map objects directly to your relational databases. O/RM has been growing in popularity in the Java community, to the point where it is almost taken for granted that a J2EE application will use an O/RM solution. Ruby on Rails is another non-.NET area that has recently embraced O/RM mapping; a complete O/RM solution is included directly in the framework. All indicators are pointing to increasing adoption of O/RM in the .NET space. The Language Integrated Query (LINQ) project is Microsoft’s attempt to build O/RM-like capabilities into the .NET Framework, via a set of extensions that encompass language-integrated query, set, and transform operations. You can read more about it at http://msdn.microsoft.com/data/ref/linq/.

At the heart of the O/RM debate in .NET is the controversy over using DataSets or business entities (also called “plain-old CLR objects,” or POCOs) to hold data and represent your domain model. You can find countless articles, blog posts, and hecklers at the back of presentations who will expound on the merits of one approach over the other.

Since this debate is so central to O/RM mapping, let’s look at some of the pros and cons of using DataSets versus entities as data transportation objects:

DataSets

DataSets are easy to use and provide a huge amount of functionality. It is easy to insert, delete, and update rows by writing only a minimal amount of ADO.NET code. You can also easily filter ...

Get Windows Developer Power Tools now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.