I'm trying to make an educated decision about what ORM to use for a number of legacy applications I'm responsible for porting to MVC 2. The ORMs I've looked at are LINQ to SQL, LINQ to Entities and nHibernate. L2S seemed to be the easiest, but I've found numerous articles and blog entries stating that Microsoft would no longer be updating it after .NET 3.5. With that in mind, I've been working with Entities a bit, but have found that it is cumbersome and overcomplicated for the small applications I'm working with (same with nHibernate). I recently purchased "Pro ASP.NET MVC 2 Framework" by Steven Sanderson, in which he chose to use LINQ to SQL as his ORM, at one point stating:
I'm aware that some developers have expressed concerns that Microsoft might
deprecate LINQ to SQL in favor of Entity Framework. However, Microsoft included
and enhanced LINQ to SQL in .NET 4, so these fears cannot be entirely justified.
I was unaware that they had made changes, nor had I bothered to look, as the general community opinion seemed to be that L2S was approaching end-of-life, to be replaced by L2E. Damien Guard wrote about some of the changes on his blog (http://damieng.com/blog/2009/06/01/linq-to-sql-changes-in-net-40) for those interested.
My hope is that someone can shed some light on Microsoft's position regarding LINQ to SQL. The applications I'm porting and updating have a (roughly) 8-10 year life span, so I'd prefer to adopt a technology that won't be abandoned in that time-frame and leave my replacements up creek. (Of course, if anyone has any other recommendations for small shops - our database has less than 5 million records - I'd love to hear them.)
LINQ to SQL was the first object-relational mapping technology released by Microsoft. It works well in basic scenarios and continues to be supported in Visual Studio, but it's no longer under active development.
First off, if you're starting a new project, use Entity Framework ("EF") instead of Linq to SQL because it now generates far better SQL (more like Linq to SQL does) and is easier to maintain ("L2S").
Split queries EF Core 5.0 now allows a single LINQ query including related collections to be split into multiple SQL queries. This can significantly improve performance, but can result in inconsistency in the results returned if the data changes between the two queries.
In LINQ to SQL, the data model of a relational database is mapped to an object model expressed in the programming language of the developer. When the application runs, LINQ to SQL translates into SQL the language-integrated queries in the object model and sends them to the database for execution.
The message I'v received is: looking forward we should really use Entity Framework in as much as possible; LINQ to SQL is basically in maintenance mode: it won't go away any time soon but it won't evolve significantly either. Meanwhile Entity Framework is evolving and also being integrated with other products/frameworks like RIA Services or WCF Data Services.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With