Bilmek istediğin her şeye ulaş

Entity Framework

Formatting of continuation data will be changing soon. To continue using the current formatting, use the 'rawcontinue' parameter. To begin using the new format, pass an empty string for 'continue' in the initial query.

Kasım 2015

Gokhan İnce @gokhanince

Entity Framework kullanımı gerçekten rahatlık sağlar mı?

ORM araçlarının amacı rahatlık sağlamak denemez. Prosedürel tekdüze sql sorguları yerine daha anlaşılabilir kod yazmanıza olanak sağlar. Betikler yerine OOP ile yaklaşmanızı sağlar. MsSQL, MySQL gibi bağımlılıklardan uzaklaşarak kod yazmanıza imkan verir. Bugünkü projelere, teknolojilere baktığımızda RDBMS için ORM kullanılması kaçınılmaz.
Kasım 2013

Unluckypod @unluckypod

Entity Framework'te Inheritance mevzusu projelerde olmazsa olmaz mı?

EntityFramework'te inheritance kullanımının "olmazsa olmaz" olabileceği ihtimaline nasıl varabildik onu merak ettim ben... Veri class'larının birbirinden türetilmesinden bahsediyoruz yanılmıyorsam, başka bir "inheritance" değil sanırım sorduğunuz...

EntityFramework inheritance kullanımını destekliyor. Lakin, veri alanlarını ilişkilendirmek yerine, inheritance kullanıldığı zaman, veritabanı üzerinde tablo yapılarının pek de güzel oluşmadığını söylemem gerekir. Ayrıca soru açıklamasında belirttiniz gibi; hem sorgulamada hem de veri modelinin ayağa kalkması sırasında performans kaybı olabilceğini düşünüyorum. Kişisel görüşüm; EntityFramework ne kadar nesneye yönelik bir yaklaşıma sahip olsa bile; yine de inheritance kullanılmamalı. Class'lar tabloları temsil edebilecek mümkün olan en basit yapıda olmalı ve nesne ilişkileri class içindeki veri alanlarıyla sağlanmalı. Inheritance, MongoDb benzeri NoSQL sistemlerine daha çok yakışabilecek bir kullanım tarzı olacaktır diye düşünüyorum.

Yani örnek olarak; Canlı -> Hayvan -> Kedi yapısını düşünürsek,

public class Canli { }
public class Hayvan : Canli { }
public class Kedi : Hayvan { }

şeklinde kullanmak yerine;

public class Canli { }
public class Hayvan { public Canli CanliInfo { get; set; } }
public class Kedi { public Hayvan HayvanInfo { get; set; } }

şeklinde kullanılması benim daha çok tercih ettiğim ve önerebileceğim kullanım şeklidir... Aksini savunan da olabilir muhtemelen, ama "olmazsa olmaz" demek mümkün değil... Daha çok "eğer öyle istiyorsan öyle de olur" benzeri bir durumdur inheritance kullanmak. . .
Ekim 2013

Unluckypod @unluckypod

Bir web sitesindeki Xml dosyası Visual C# ile veritabanına nasıl atılır?

Öncelikle XML dökümanını parse etmeniz gerekmekte. Daha sonra parsing işlemi ile elde ettiğiniz ilgili verileri değişkenler üzerinden kontrol ederek veritabanına aktarabilirsiniz. XML Parsing işlemi için şu kaynakları önerebilirim : msdn.microsoft.com/en-us/library/cc189056(v=vs. 95) . Aspxcodeproject.com/articles/24049/easy-xml-...
codeproject.com/articles/169598/parse-xm... dotnetperls.com/xmlreaderÖte yandan burada bir url'den xml okumak istediğiniz için şu makaleyi de incelemenizde fayda var :
support.microsoft.com/kb/307643

xml dökümanınızı parse ettikten sonra XmlDAO isimli bir sınıf oluşturabilir dökümanda bulunan ilgili verilerin her biri için bir değişken oluşturabilir Encapsulation özelliği ile bu veriler üzerinden veritabanındaki ilgili tabloda bulunan kolona veri aktarabilirsiniz.
Mart 2014

Unluckypod @unluckypod

Ocak 2014

Gizli Kullanıcı

Asp.Net'te doğru repeater sayfalaması nasıl olmalıdır?

Yani en basit şekliyle bir sayfalama için QueryString ile sayfa indexi taşınmalıdır diyebilirim. Açıklamada bahsettiğiniz Session kullanımını tavsiye etmem. Çünkü böyle basit bir işlem için Session'ı işgal etmek doğru değil bence.

QueryString ile taşınabilir derken şöyle örnekleyelim:

/mypage.aspx?page=3 

Ancak eğer URL route kullanıyor iseniz bu yapı şu şekilde de olabilir:

/mypage/3/ veya /mypage/page/3/ 


Entity Framework konusunda ise şunu söyleyebilirim;

Veri tabanına sorgu yaparken index ve count olmak üzere 2 parametre geçerek bunu sorgunuza entegre edebilirsiniz ve ayrıca sorgu içinde Skip ve Take kullanarak bunu sağlayabilirsiniz.

Örneğin:
public IEnumerable<Product> GetProducts(int index, int count) 
{
 return (from p in db.Products
         select p) 
        .Skip(index * count) 
        .Take(count); 
} 

Böylece, count = 10 diyelim ve index "0" ise ilk 20, index 1 ise ikinci 20 adet veriyi almış olursunuz.
Ekim 2013

Unluckypod @unluckypod

Database kavramında Entity ne demek?

Sözlük anlamından yola çıkarsak "Varlık" anlamına karşılık geliyor ancak teknik olarak bire bir böyle bir çevrim yapılması sağlıklı olmuyor.

Entity Framework bir ORM (Object Relational Mapping) aracıdır. Entity Framework'den önce LinqToSql vardı hala var ancak geliştirilmesi durduruldu ve Entity Framework projesi ile Microsoft'un resmi ORM projesi geliştirilmeye devam etmekte.

LinqToSql ortaya çıkmadan önce veritabanı ile çalışılan projelerde .NET programcısı veritabanına erişimlerini C# kodu içerisinden kendisi elle ayrıca TSql kodları yazarak gerçekleştiriyordu ve Sql Server Management Studio aracılığıyla da veritabanına doğrudan erişip tabloları, tablolalar arası ilişkileri ve diğer veritabanı programlama öğelerini kendisi hazırlıyordu (stored procedure, function, trigger).

ORM araçlarının ortaya çıkması ile veritabanı ile çalışılan projelerde .NET programcısı veritabanını, tabloları ve diğer veritabanı öğelerini doğrudan kendisi elle oluşturmasına gerek kalmadan bu işin yapılmasını Entity Framework'e bıraktı.

Bunun için de Entity Framework'ün kuralları doğrultusunda veritabanı ve tabloların oluşturulması yerine "entity"ler oluşturuldu. Bunlar C#'dan bildiğimiz "class"lardır.

Sizin anlayabileceğiniz şekilde çevirmek gerekirse Entity Framework ile veritabanında tablo oluşturmanın karşılığı olarak data modellerinizi (entity'leri) oluşturuyorsunuz. Projeyi çalıştırdığınız entity framework bu data modellerinizi ve data modelleri arasındaki ilişkileri okuyarak veritabanını ve tabloları, tablolar arası ilişkileri kendisi otomatik oluşturuyor.

Konuyla ilgili kafanızdaki soru işaretlerini giderecek bir eğitim videosu ve makaleyi paylaşıyorum.
msdn.microsoft.com/en-us/data/jj193542
Temmuz 2011

Ahmet Faik @AhmetFaik

NHibernate'mi Entity Framework mü?

Nhibernate'in çok fazla geçmişi var. Bu sebeple oturmuş özelliklere sahip. Performans konusunda çok iyi. Sadece MSSQL değil bir çok RDBM'i desteklemesi yine en önemli artılarından. Codefirst yapısı çok güzel.

Ama ne kullanıyorum diye soruyorsan, sonuna kadar Entity Framework kullanıyorum. Çünkü birincisi Visual Studio ile çok güzel entegre çalışıyor. İkincisi gelişimi durmuyor ve her versiyonda daha stabil oluyor. Üçüncüsü ve en önemlisi Microsoft ürünü :)

Nhibernate çok iyidir ama Entity Framework tercihimdir. Özellikle yeni sürümü çok harika. ;)
Temmuz 2011

Faik Ahmet @faika

Daha önce MSSQL ile Entity Framework sistem geliştirdim. Oracle'a geçmem gerekiyor. SQL kodlarını tekrar yazmam gerekir mi?

SQL komutlarınız ne yazık ki değişecektir, MSSQL ile oracle sql komutlarında farklılıklar mevcut.

22 kişi

Konunun Takipçileri

Alt Konu Başlıkları

Henüz bu konu başlığı ile ilgili konular bulunmuyor.