LINQ to SQL only supports 1 to 1 mapping of database tables, views, sprocs and functions available in Microsoft SQL Server. It's a great API to use for quick data access construction to relatively well designed SQL Server databases. LINQ2SQL was first released with C# 3.0 and .Net Framework 3.5.
LINQ to Entities (ADO.Net Entity Framework) is an ORM (Object Relational Mapper) API which allows for a broad definition of object domain models and their relationships to many different ADO.Net data providers. As such, you can mix and match a number of different database vendors, application servers or protocols to design an aggregated mash-up of objects which are constructed from a variety of tables, sources, services, etc. ADO.Net Framework was released with the .Net Framework 3.5 SP1.
This is a good introductory article on MSDN:
Introducing LINQ to Relational Data
You should have a look at Sharp Architecture an ASP.NET MVC application framework which uses NHibernate.
I've used a few O/RMs in the past couple of years and there's no way would chose anything other than NHibernate.
- It's the most mature.
- It's got a huge set of features.
- It's got a good community behind it.
- It's got some fantastic ancillary projects such as Fluent NHibernate.
I don't know what more information people will be able to give you over and above in the questions that you have linked to.
Best Answer
I put together a fairly lengthy answer to a similar question: ADO.NET Entity Framework: Decision Making between ORM solutions.
However, since you asked :) I agree, I'd pick NHibernate for an "Enterprise" web solution today, however..
The next version of the Entity Framework should be worth taking a long hard look at. The first version wasn't ready for large scale deployment and the generated T-SQL leaves a lot to be desired, but I see a big future if the ADOEF team can put it together correctly. It could be really something, especially if it's able to consume the revamped SQL Data Services!
If anything, I'd brush up on eSql (Entity SQL) and get used to the syntax for using LINQ to write data queries. Something tells me this will be excellent experience to have handy for the next few years.