OR.NET

Welcome to OR.NET, an open source O/R Mapper and Code Generator for the .NET 2.0 Framework. OR.NET generates a comprehensive data access layer in stand-alone C# 2.0 after scanning your database’s meta-data. This process creates all relationships based on both simple foreign keys, and many-to-many mapping tables. All identity columns will be found, and treated appropriately for inserts, and all nullable fields will be created as nullable properties in code. The generated code will allow you to treat objects as objects, and not database rows - in other words, you will NEVER have to manually assign foreign keys to your objects (though doing so won't hurt). Just assign objects to other objects, or add objects to collections, and OR.NET will assign foreign keys appropriately.
In addition to automatic class structure generation, you can also manually create / modify classes by specifying which column(s) represents the key, which columns to create properties out of, and which other objects the new class links to, either through a foreign key, or a many-to-many mapping table – all through an exceedingly easy to use GUI.
The classes generated are completely database independent, with all data-access happening through generated assembler classes. This means that the actual classes have a small footprint, and can be fully serialized, for example across a web service, or on the ASP.NET ViewState. 

Go to http://www.ornetmapper.com/

See also these related projects.