30 Haziran 2011 Perşembe

Linq To Sql, 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 class

N 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