4 Mart 2010 Perşembe

LinqToSql vs Entity Framework

Hangisini neden seçmeliyim?



Linq To Sql
Linq To Entity (ADO.Net Entity Framework)

DB
SQL Server
Her türlü ADO.Net data provider
Aynı anda desteklenen şema, protocol sayisi
1
N
Many To Many Relation desteği
M-M tablolar birer entitiy olarak
tanımlanmalı
Var
Relation Multiplicity Ayarı
-
Var
Map etme şekli
1 table - 1 classN table - 1 class
Hedef Projeler
Çabuk, hızlı projeler
Kurumsal yazılımlar
Kompleks tiplerin yaratılması (örneğin
adres diye bir tip oluşturulabilmesi)
-
Var
Data Source
Veritabanı tabloları
Veritabanı tabloları, replication,
Reporting Services, BI, vbl.
Sorgulama
1. Linq to Sql
1. Linq to sql



2. Data Context
2. Entity Sql (inheritance destekliyor)


3. Entity Client
Veritabanı değişince senkronize
edebilme desteği
-
Var
Performans
çok yavaş
linq to sql'den daha iyi
Geliştirilme Durumu
Durduruldu
Devam Ediyor
Data Model'den veritabanı üretilmesi
-
VS2010'da mümkün olacak

Entity Framework'ün VS2008SP1 üzerinde Kısıtları (Osellus Blogs'dan alıntıdır)

1.) Contains metodu runtime'da hata verecektir. Örnek:
         from p in context.Yard_Projects
         where p_projectIDs.Contains(p.ProjectID)
         select p

2.) Entity Type tipinde dönüş yapmayan procedure'ler için metod generate edilmeyecektir.
(Stored Procedure'leri çalıştırmak için Entity Client'a ihtiyacımız var.)

3.) Tablodaki her kolon map edilmek zorundadır. Aksi takdirde compile error alacağız.

4.) Birçok tablodan veri dönen bir stored procedure'e referans kullanan bir metod yaratmak istiyorsak,
.edmx file'ı içinde yer alan "SSDL" bölümünü elle değiştirmemiz gerekmektedir.

Hiç yorum yok:

Yorum Gönder