Jul 11 2009

Choosing between ADO.NET Entity Framework and LINQ to SQL

Category: Entity framework | LINQLatif @ 17:55


       I just would like to share the information I have found from Wriju's BLOG. I want to copy and paste here to share with you. You can find some part of his observation about topic below.

Why I should use Entity Framework?

Ø       It simplifies the data access and allows me to create conceptual model required for my business.

Ø       EF allows you to handle Many to Many relationship without extra join.

Ø       Map related tables into single entity to reduce code complexity.

Ø       Strong inheritance supports for (Table per hierarchy, subclass and concrete type)

Ø       Consolidation for complex object is very easy.

Ø       It has powerful query mechanism through EntitySQL. For them who do not like LINQ you can use EntityClient provider with EntitySQL.

Ø       You can expose your modeled data through ADO.NET Data Services (Astoria).

Ø       Database independent and based on standard ADO.NET Providers.

Ø       There are many third party providers currently available.

o        Devart offers provider for Oracle, MySQL and PostgreSQL

o        Phoenix Software Solution offers EF provider for SQLite.

o        Npgsql offers another provider for PostgreSQL.   

o        OpenLink Software offers a very wide range of support for Oracle (versions 7.x to 11.x), Microsoft SQL Server (6.x to 2005), IBM DB2 , Sybase (4.2 to 12.x+), IBM Informix (5.x to 11.x), Ingres (6.4 to 9.x), Progress (7.x to 10.x), MySQL, PostgreSQL, and Firebird 

o        Sybase SQL Anywhere provides support for SQL Anywhere.

o        IBM natively supports databases like DB2, Informix and U2.

Ø       <TODO: will add few more as and when come across>



At the end of the story I still feel good about LINQ to SQL when it comes to smaller applications with less complexity. Entity Framework is capable of handling large enterprise applications and will have more power in v2 (in .NET 4.0). So if you are targeting your application for multiple databases the L2S is not the right choice for you.

My vote is for ADO.NET Entity Framework. You will enjoy with the conceptual model and Astoria.  

Reference: http://blogs.msdn.com/wriju/archive/2009/03/08/choosing-between-ado-net-entity-framework-and-linq-to-entity.aspx?CommentPosted=true#commentmessage

Till later..

Tags: ,