İçeriğe geç →

Goo Micro ORM

Goo Micro ORM .Net için geliştirilmiş strongly typed destekli, code-first yaklaşımlı basit bir açık kaynak kodlu orm aracıdır.

Link: https://github.com/GokGokalp/Goo-Micro-ORM

# DESTEKLERİ

* Şuan sadece MSSQL veritabanını desteklemektedir.
* Veri modelinizi code-first yaklaşımı ile oluşturmanıza olanak sağlamaktadır.
* Basit tablo işlemlerini gerçekleştirebilmenizi sağlamaktadır.
* Listeleme işlemlerini type destekli bir şekilde yapabilmenizi sağlamaktadır.
* LINQ kullanımına olanak sağlamaktadır.
* Caching işlemlerini desteklemektedir.
* Transaction işlemlerini desteklemektedir.
* Custom kompleks query yazabilmeye olanak sağlamaktadır.

# KULLANIMI

Goo Micro ORM’i projenize ekleyip ilgili connection ayarlarını tanımladıktan sonra kendi modelinizi oluşturmaya hemen başlayabilirsiniz. UnitTest ortamı için “GooNorthwind.sql” script’ini çalıştırmanız yeterlidir.

Typed desteğini kullanabilmeniz için:
* Kendi entitylerinizi ModelBase soyut sınıfından türetin.
* GooContext sınıfının üretilebilmesi için GooContext.tt şablonu içindeki “YOUR INFRASTRUCTURE LAYER PATH” ve “YOUR MODEL LAYER PATH” alanlarını güncellemeniz gerekmektedir.
* Kendi projeniz için ise GooContext.tt sınıfını ilgili model katmanınız ile aynı yerde barındırmanız yeterlidir.

Propertyleri veritabanı tarafında eşleyebilmek için:
* Entitylerinizi ilgili type attributeleri ile işaretleyin.

Categories entitysi için örnek bir model tanımlaması:

Desteklenen tipler: BOOLEAN, DATETIME, DECIMAL, IMAGE, INT, IsAutoIncrement, IsForeignKey, IsPrimaryKey, IsRelationEntity, MONEY, NCHAR, NONCLUSTEREDINDEX, NOTNULL, NTEXT, NULL, NVARCHAR, SMALLINT, TINYINT, VARCHAR

Veritabanı Modelleme

Entitylerinizi ModelBase soyut sınıfından türeterek oluşturduktan sonra projeyi derlediğinizde Goo Micro ORM size GooContext wrapper sınıfını oluşturacaktır.


Create/Alter/Drop/Truncate İşlemleri

Tablo üzerindeki işlemlerinizi kolaylıkla DBInitializerManager üzerinden gerçekleştirebilirsiniz.

CRUD İşlemleri

GooContext sınıfı üzerinden insert/update ve delete işlemlerinizi yapabilirsiniz.

Entity ekleme:


Entity güncelleme:


Entity silme:

 

Read İşlemleri

GooContext sınıfı üzerinden listeleme, getirme ve ön belleğe ekleme gibi işlemleri yapabilirsiniz.

FirstOrDefault:


ToList:


Where:


Order ve Take:


Custom inline query:


AddToCache ve GetFromCache:

 

ORM Configuration

OrmConfiguration özelliği size “LazyLoading, Connection ve Transaction” işlemleri yapabilmenizi sağlar.

LazyLoading:


Connection:


Transaction:

 

# PERFORMANS TESTİ

Select işlemleri için performans testi (strongly typed)

Metot Süre Adet
ToList() 116ms 500
Where(o => o.ShipVia == 3 && o.RequiredDate > DateTime.Parse(“1996-09-01”)) 130ms 246
Where(o => o.ShipName.Contains(“al”)) 95ms 87

Select işlemleri için performans testi (non-typed DBDataReader)

Metot Süre Adet
ExecuteCustomQuery 76ms 500
ExecuteCustomQuery(“SELECT * FROM Orders WHERE ShipVia = 3 AND RequiredDate > ‘1996-09-01′”) 80ms 246
ExecuteCustomQuery(“SELECT * FROM Orders WHERE ShipName LIKE ‘%al%'”) 78ms 87

Bu makale toplam (3148) kez okunmuştur.

37
3



Kategori: ORM

Tek Yorum

  1. Veysel Veysel

    Teşekkürler çok güzel bir paylaşım orm geliştirme hakkında fazla bir kaynak bulunamıyordu Türkçe olarak. Bu çok iyi bir örnek olacak üstat.

Bu yazı yorumlara kapalı, ama geri izlemeler ve pingback'ler açık.