I've completed a few MVC projects now in production with L2SQL under the hood and found it quite a joy to use. I'm now embarking on a new project and decided to write it using EF and L2EF given the previously cited articles proclaiming the death of L2SQL. After only a couple of days I've decided to go back to L2SQL. Simple things like having to set foreign keys for inserts using either the awful syntax shown below or uneccessary lookups have shocked me.
foo.Foreign_TypeReference.EntityKey =
new EntityKey("DataContextName.Foreign_Type", "Foreign_Type_Id", ForeignTypeId);
Rather than:
foo.Foreign_Type_Id = ForeignTypeId;
I don't think it will be that hard to port L2SQL to a future version of EF as L2SQL has a subset of the functionality (though better implemented). The few things that L2SQL has that L2EF doesn't, for example Single() and SingleOrDefault(), can be migrated to EF by creating a few extension methods. I think it will take far less time to get the system running using L2SQL and then port it over later when EF isn't so smelly.