We now have a fairly clear message from Microsoft that LINQ to SQL will be deprecated in favor of the Entity Framework:
http://blogs.msdn.com/adonet/archive/2008/10/31/clarifying-the-message-on-l2s-futures.aspx
This is basically an admission that coming out with two competing relational data access technologies was not the best possible story, and that unifying data access on the Entity Framework will be better for everyone in the long run.
I like LINQ to SQL and am somewhat disappointed to see it go by the wayside, but Entity Framework has the advantage of being compatible with just about any back-end data store. And, although L2S offers a better developer experience in several areas (POCO support, concurrency management, disconnected scenarios, etc), it won’t be long before Entity Framework catches up.
Does this mean they’re going to rip out L2S from the .Net Framework? Of course not. There are many apps for which L2S is a great choice, but for apps that are going to be around for a while, EF is clearly the way to go. But these apps should also decouple themselves from the data access layer using a plug-in architecture, seeing that Microsoft is in the habit of changing their data access API’s from time to time. J