Many long-time Microsoft developer hold fast to the "all data access must be stored procedures" thought, and that was, at one time, the guidance from Microsoft. Soon we'll see the Object-relational mapper from Microsoft in the form of Linq for Entities. I drove up to the North Dallas .Net User Group yesterday and visited with Scott Guthrie on the topic. Microsoft has tried a few times before at creating an OR mapper, but they've learned from past attempts and are releasing v1.0 of Linq as their entry into the ORM space.
I'm very much entrenched in the ORM space with NHibernate, but I'm interested in how Linq for Entities pans out. From a cursory look, the mapping information is specified with attributes that are placed on the entity class. I'm not sure if that's the only method for this, but I'm very much looking forward to the release.
An interesting tidbit demonstrated was the server-side paging of a Linq query. For instance, the C# query: from customers select customer, you can specify to skip 10 and then return 10 (or any number) if you need to page through the resultset 10 at a time. Linq will formulate the SQL query to get you exactly what you want. Very nice. Ayende, in the comments below gives an example of that with NHibernate.