Gizem Tanış Bozok Üniversitesi Öğr. Görevlisi
Veri erişimi için ADO.NET kodunu yazmak ve yönetmek zordur. Microsoft, uygulamada veritabanı aktivitelerini otomatik olarak yapabilmek için Entity framework olarak adlandırılan bir O/RM sundu.
Microsoft ADO.NET Entity Framework bir O/RM framework’tür ki bu yapı, alana özgü nesneler gibi ilişkisel verilerle çalışmaya izin veriyor. Entity Framework kullanarak, geliştiriciler LINQ kullanarak sorgu yazabililir. Entity Framework bir Object/Relational Mapping yapısıdır. Veritabanındaki verilere erişim ve depolama için otomatik bir mekanizma olan ADO.NET ile geliştirilmiştir.
Entity Framework 3 senaryoda kullanışlıdır 1. Var olan bir veritabanı varsa veya uygulamanın diğer bölümlerinde bir veritabanı tasarımı yapmak istersen, 2. Ana classlara odaklanmak istersen ve ana classlardan bir veritabanı olusturmak istersen 3. Sanal olarak bir veritabanı şeması olusturup daha sonra veritabanı ve class olusturmak istersen faydalıdır.
Entity Framework mevcut olan bir veritabanındansınıflar olusturur.
Ana sınıflardan veritabanı olusturmak
Şemadan sınıflar ve tablolar olusturur
Fazla programlamaya ihtiyaç olmadan, otomatik bir şekilde, MSSQL server gibi ilişkisel veritabanlarına ana nesnelerden veri göndermeye yarayan bir araçtır. 3 ana bölümden olusur: Ana sınıf nesneleri(Domain class objects), ilişkisel veritabanı nesneleri(relational database objects) ve ilişkisel veritabanı nesnelerine ana sınıf nesnelerini nasıl aktarmamız gerektiğini gösteren haritalama nesneleri(mapping objects)
ORM bize ana sınıf tasarımından farklı olarak veritabanı tasarımını da saklamamıza izin veriyor. Böylece standart olarak CRUD(Create,Read, Update,Delete) komutlarını elle yazmamıza gerek kalmadan otomatik olarak yapılabiliyor Entity Framework gibi, DataObject.NET, Nhibernate, OpenAccess, Sunsonic gibi.NET için geliştirilmiş birçok ORM framework vardır
EDM: 3 ana bölümden olusur:Kavramsal Model, Haritalama ve Saklama Modeli Conceptual Model: model sınıfları ve onların ilişkilerini içeriyor. Bu veritabanı tablolarından bağımsız olacak. Storage Model Veritabanı tasarım t modelini içeriyor. İçinde tablolar, viewler, stored procedurler ve onların arasındaki ilişkiler dahildir. Mapping: Kavramsal modelin storage modeline nasıl haritalanacağı bilgisini içermektedir.
LINQ to Entities: Bir sorgu dilidir. Conceptual modelde tanımlanan varlıkları döndürür. Object Service: Veritabanından veriye erişmek için bir ana nokta. Meteryalizasyondan sorumludur. Yani entity client data providerdan entity object’ e veri göndermekten sorumludur. Entity Client Data Provider: Bunun temel sorumluluğu L2E veya Entity SQL ile yazılan sorguları, veritabanının anlayaağı SQL sorgularına dönüştürmektir. Veritabanından veri gönderen ve alan ADO.NET veri sağlayıcısı ile iletişim kurar.
ADO.Net Data Provider: Standart Ado.NET kullanarak veritabanı ile iletişim kurarlar.