I am assigned to maintain a bunch of legacy apps with heavy stored procedure usage built before '05 when there was no ORM. The developers who work with me don't know Entity Framework nor LINQ and are not eager to learn.
Is there any ORM on .NET that provides a simple object interface to existing database tables and perhaps stored procedures?
I am quite happy if it enables me to code a few lines to get a class to each table, and it has properties corresponding to data in each column and some methods or properties to resolve foreign key relationship / many-to-many relationship - forward and reverse.
For example, saving one employee and department record
Employee e = new Employee("John", null);
Department d = new Department("QA");
d.save();
e.department = d;
e.save();
without writing INSERT SQL statements.
EDIT: I am using MS SQL Server 2008
NHibernate may be something to look into also, though personally I didn't like the original Java Hibernate very much, but that was years ago. I also use SubSonic on a regular basis. The latest SubSonic is more Linq oriented, but look specifically at its "ActiveRecord" capability. I think it covers the object-based stuff that you are trying to do. Development on SubSonic doesn't happen much any more, other than occasional bug fixes, but it is open source, and there is a Google group for support questions. It also supports a good number of databases, since you didn't mention what DB you are using.
Have a look at Rob Conery's Massive. It's simple and appears easy to use. It looks like it requires .NET 4, though.
I suggest you to use PetaPoco, the quite fresh ORM with easy to learn line.
From authors site:
I used Subsonic in .NET 2.0 projects and it was nice. Unfortunately, it seems, it is not developed anymore.
SubSonic is fairly easy to use. LINQ to SQL is a good choice too. Also, take a look at http://www.codeproject.com/KB/database/LightORMLibrary.aspx.