Aracılığıyla paylaş


GeçişLe İlgili Önemli Noktalar (Entity Framework)

ADO.NET Entity Framework, mevcut bir uygulamaya çeşitli avantajlar sağlar. Bu avantajlardan en önemlilerinden biri, uygulama tarafından kullanılan veri yapılarını veri kaynağındaki şemadan ayırmak için kavramsal bir model kullanabilmektir. Bu, uygulamada telafi değişiklikleri yapmadan depolama modelinde veya veri kaynağında kolayca değişiklik yapmanızı sağlar. Entity Framework kullanmanın avantajları hakkında daha fazla bilgi için bkz . Entity Framework'e Genel Bakış ve Varlık Veri Modeli.

Entity Framework'ün avantajlarından yararlanmak için var olan bir uygulamayı Entity Framework'e geçirebilirsiniz. Bazı görevler tüm geçirilen uygulamalar için ortaktır. Bu yaygın görevler, uygulamayı sürüm 3.5 Service Pack 1 'den (SP1) başlayarak .NET Framework kullanacak şekilde yükseltmeyi, modelleri ve eşlemeyi tanımlamayı ve Entity Framework'i yapılandırmayı içerir. Bir uygulamayı Entity Framework'e geçirdiğinizde, geçerli olan ek noktalar vardır. Bu önemli noktalar geçirilmekte olan uygulamanın türüne ve uygulamanın belirli işlevselliğine bağlıdır. Bu konu, mevcut bir uygulamayı yükseltirken kullanılacak en iyi yaklaşımı seçmenize yardımcı olacak bilgiler sağlar.

Genel GeçişLe İlgili Dikkat Edilmesi Gerekenler

Herhangi bir uygulamayı Entity Framework'e geçirirken aşağıdaki noktalar geçerlidir:

  • 3.5 SP1 sürümünden itibaren .NET Framework kullanan tüm uygulamalar, uygulama tarafından kullanılan veri kaynağının veri sağlayıcısı Entity Framework'u desteklediği sürece Entity Framework'e geçirilebilir.

  • Entity Framework, varlık çerçevesini desteklese bile veri kaynağı sağlayıcısının tüm işlevlerini desteklemeyebilir.

  • Büyük veya karmaşık bir uygulama için uygulamanın tamamını bir kerede Entity Framework'e geçirmeniz gerekmez. Ancak, uygulamanın Entity Framework kullanmayan herhangi bir bölümü, veri kaynağı değiştiğinde yine de değiştirilmelidir.

  • Entity Framework, veri kaynağına erişmek için ADO.NET veri sağlayıcıları kullandığından Entity Framework tarafından kullanılan veri sağlayıcısı bağlantısı uygulamanızın diğer bölümleriyle paylaşılabilir. Örneğin, SqlClient sağlayıcısı Entity Framework tarafından bir SQL Server veritabanına erişmek için kullanılır. Daha fazla bilgi için bkz . Entity Framework için EntityClient Sağlayıcısı.

Yaygın Geçiş Görevleri

Var olan bir uygulamayı Entity Framework'e geçirme yolu hem uygulama türüne hem de mevcut veri erişim stratejisine bağlıdır. Ancak, var olan bir uygulamayı Entity Framework'e geçirirken her zaman aşağıdaki görevleri gerçekleştirmeniz gerekir.

Not

Bu görevlerin tümü, Visual Studio 2008'den başlayarak Varlık Veri Modeli araçlarını kullandığınızda otomatik olarak gerçekleştirilir. Daha fazla bilgi için bkz . Nasıl yapılır: Varlık Veri Modeli Sihirbazı'nı kullanma.

  1. Uygulamayı yükseltin.

    Visual Studio'nun önceki bir sürümü ve .NET Framework kullanılarak oluşturulan bir proje, 3.5 SP1 sürümünden itibaren Visual Studio 2008 SP1 ve .NET Framework kullanacak şekilde yükseltilmelidir.

  2. Modelleri ve eşlemeyi tanımlayın.

    Model ve eşleme dosyaları kavramsal modeldeki varlıkları tanımlar; tablolar, saklı yordamlar ve görünümler gibi veri kaynağındaki yapılar; ve varlıklar ile veri kaynağı yapıları arasındaki eşlemeyi içerir. Daha fazla bilgi için bkz . Nasıl yapılır: Model ve Eşleme Dosyalarını El ile Tanımlama.

    Depolama modelinde tanımlanan türlerin veri kaynağındaki nesnelerin adıyla eşleşmesi gerekir. Mevcut uygulama verileri nesne olarak kullanıma sunarsa, kavramsal modelde tanımlanan varlıkların ve özelliklerin bu mevcut veri sınıflarının ve özelliklerinin adlarıyla eşleştiğinden emin olmanız gerekir. Daha fazla bilgi için bkz . Nasıl yapılır: Özel Nesnelerle Çalışmak için Modelleme ve Eşleme Dosyalarını Özelleştirme.

    Not

    Varlık Veri Modeli Tasarım Aracı, kavramsal modeldeki varlıkları mevcut nesnelerle eşleşecek şekilde yeniden adlandırmak için kullanılabilir. Daha fazla bilgi için bkz. Varlık Veri Modeli Tasarım Aracı.

  3. bağlantı dizesi tanımlayın.

    Entity Framework, kavramsal modelde sorgu yürütürken özel olarak biçimlendirilmiş bir bağlantı dizesi kullanır. Bu bağlantı dizesi model, eşleme dosyaları ve veri kaynağı bağlantısı hakkındaki bilgileri kapsüller. Daha fazla bilgi için bkz. Nasıl yapılır: Bağlan Ion Dizesini Tanımlama.

  4. Visual Studio projesini yapılandırın.

    Entity Framework derlemelerine ve model ve eşleme dosyalarına başvurular Visual Studio projesine eklenmelidir. Uygulamayla birlikte bağlantı dizesi belirtilen konumda dağıtıldığından emin olmak için bu eşleme dosyalarını projeye ekleyebilirsiniz. Daha fazla bilgi için bkz . Nasıl yapılır: Entity Framework Projesini El ile Yapılandırma.

Mevcut Nesnelere Sahip Uygulamalar için Dikkat Edilmesi Gerekenler

.NET Framework 4'den başlayarak, Entity Framework kalıcılık bilgisi olmayan nesneler olarak da adlandırılan "düz eski" CLR nesnelerini (POCO) destekler. Çoğu durumda, mevcut nesneleriniz küçük değişiklikler yaparak Entity Framework ile çalışabilir. Daha fazla bilgi için bkz . POCO Varlıklarıyla Çalışma. Ayrıca bir uygulamayı Entity Framework'e geçirip Entity Framework araçları tarafından oluşturulan veri sınıflarını kullanabilirsiniz. Daha fazla bilgi için bkz . Nasıl yapılır: Varlık Veri Modeli Sihirbazı'nı kullanma.

ADO.NET Sağlayıcılarını Kullanan Uygulamalar için Dikkat Edilmesi Gerekenler

SqlClient gibi ADO.NET sağlayıcıları, tablosal verileri döndürmek için bir veri kaynağını sorgulamanıza olanak tanır. Veriler bir ADO.NET DataSet'e de yüklenebilir. Aşağıdaki listede, mevcut bir ADO.NET sağlayıcısını kullanan bir uygulamayı yükseltmeyle ilgili önemli noktalar açıklanmaktadır:

  • Veri okuyucu kullanarak tablosal verileri görüntüleme.

    EntityClient sağlayıcısını kullanarak bir Entity SQL sorgusu yürütmeyi ve döndürülen EntityDataReader nesnede numaralandırmayı düşünebilirsiniz. Bunu yalnızca uygulamanız veri okuyucu kullanarak tablosal veriler görüntülüyorsa ve Entity Framework tarafından verileri nesnelere aktarmak, değişiklikleri izlemek ve güncelleştirmeler yapmak için sağlanan olanakları gerektirmediğinde yapın. Veri kaynağında güncelleştirmeler yapan mevcut veri erişim kodunu kullanmaya devam edebilirsiniz, ancak özelliğinden StoreConnectionEntityConnectionerişilen mevcut bağlantıyı kullanabilirsiniz. Daha fazla bilgi için bkz . Entity Framework için EntityClient Sağlayıcısı.

  • DataSets ile çalışma.

    Entity Framework, DataSet tarafından sağlanan bellek içi kalıcılık, değişiklik izleme, veri bağlama ve nesneleri XML verileri olarak seri hale getirme gibi işlevlerin birçoğunu sağlar. Daha fazla bilgi için bkz . Nesnelerle Çalışma.

    Entity Framework uygulamanız için gereken DataSet işlevini sağlamıyorsa, LINQ to DataSet kullanarak LINQ sorgularının avantajlarından yararlanmaya devam edebilirsiniz. Daha fazla bilgi için bkz . LINQ to DataSet.

Denetimlere Veri Bağlayan Uygulamalar için Dikkat Edilmesi Gerekenler

.NET Framework, DataSet veya ASP.NET veri kaynağı denetimi gibi bir veri kaynağındaki verileri kapsüllemenize ve ardından kullanıcı arabirimi öğelerini bu veri denetimlerine bağlamanıza olanak tanır. Aşağıdaki listede, Denetimleri Entity Framework verilerine bağlama konusunda dikkat edilmesi gerekenler açıklanmaktadır.

  • Verileri denetimlere bağlama.

    Kavramsal modeli sorguladığınızda, Entity Framework verileri varlık türlerinin örnekleri olan nesneler olarak döndürür. Bu nesneler doğrudan denetimlere bağlanabilir ve bu bağlama güncelleştirmeleri destekler. Bu, bir denetimdeki verilerde (örneğin, bir satırda DataGridView) yapılan değişikliklerin, yöntem çağrıldığında SaveChanges otomatik olarak veritabanına kaydedildiği anlamına gelir.

    Uygulamanız, verileri veri bağlamayı destekleyen bir veya başka bir DataGridView denetim türünde görüntülemek için sorgunun sonuçlarını numaralandırırsa, denetimi sonucuna ObjectQuery<T>bağlamak için uygulamanızı değiştirebilirsiniz.

    Daha fazla bilgi için bkz . Nesneleri Denetimlere Bağlama.

  • Veri kaynağı denetimlerini ASP.NET.

    Entity Framework, ASP.NET Web uygulamalarında veri bağlamayı basitleştirmek için tasarlanmış bir veri kaynağı denetimi içerir. Daha fazla bilgi için bkz . EntityDataSource Web Sunucusu Denetimine Genel Bakış.

Diğer Konular

Aşağıda, belirli uygulama türlerini Entity Framework'e geçirirken geçerli olabilecek noktalar yer alır.

  • Veri hizmetlerini kullanıma sunan uygulamalar.

    Windows Communication Foundation'ı (WCF) temel alan web hizmetleri ve uygulamaları, XML isteği/yanıt mesajlaşma biçimi kullanarak temel alınan bir veri kaynağından verileri kullanıma sunar. Entity Framework, ikili, XML veya WCF veri sözleşmesi serileştirmesi kullanarak varlık nesnelerinin seri hale getirilmesini destekler. İkili ve WCF serileştirmesi, nesne grafiklerinin tam serileştirmesini destekler. Daha fazla bilgi için bkz . N Katmanlı Uygulamalar Oluşturma.

  • XML verilerini kullanan uygulamalar.

    Nesne serileştirme, Entity Framework veri hizmetleri oluşturmanıza olanak tanır. Bu hizmetler, AJAX tabanlı İnternet uygulamaları gibi XML verilerini kullanan uygulamalara veri sağlar. Bu gibi durumlarda WCF Veri Hizmetleri kullanmayı göz önünde bulundurun. Bu veri hizmetleri Varlık Veri Modeli'ni temel alır ve GET, PUT ve POST gibi standart Temsili Durum Aktarımı (REST) HTTP eylemlerini kullanarak varlık verilerine dinamik erişim sağlar. Daha fazla bilgi için bkz. WCF Veri Hizmetleri 4.5.

    Entity Framework yerel-XML veri türünü desteklemez. Bu, bir varlık XML sütunu olan bir tabloya eşlendiğinde, XML sütunu için eşdeğer varlık özelliğinin bir dize olduğu anlamına gelir. Nesnelerin bağlantısı kesilebilir ve XML olarak seri hale getirilebilir. Daha fazla bilgi için bkz . Nesneleri SeriLeştirme.

    Uygulamanız XML verilerini sorgulama olanağı gerektiriyorsa, LINQ to XML kullanarak LINQ sorgularının avantajlarından yararlanmaya devam edebilirsiniz. Daha fazla bilgi için bkz . LINQ to XML (C#) veya LINQ to XML (Visual Basic).

  • Durumu koruyan uygulamalar.

    ASP.NET Web uygulamalarının sık sık bir Web sayfasının veya kullanıcı oturumunun durumunu koruması gerekir. Bir ObjectContext örnekteki nesneler istemci görünüm durumunda veya sunucudaki oturum durumunda depolanabilir ve daha sonra yeni bir nesne bağlamı için alınıp yeniden eklenebilir. Daha fazla bilgi için bkz . Nesneleri Ekleme ve Ayırma.

Ayrıca bkz.