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.

Nisan 2017

Ahmet Küçükoğlu, bir soruya yanıt verdi.

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.
Mart 2017

Fatih Günalp, bir soruya yanıt verdi.

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

Evet sağlar. Nasıl peki?
adonet ile connected mimari ve disconnected mimariye bakacak olursan ve hatta örnek proje geliştirdiğinde daha sonra aynı projeyi entity framework ile yaptığında aradaki farkı açıkça görebilirsin.
Mart 2014

Kadircebel, bir soruya yanıt verdi.

MVC ile 'models''de yer almak üzere, klasik Ado.net (Ado.net entity framework değil) kullanabilir miyim?

Kullanılır ama gereksiz. .Net MVC alt yapısına pek uymuyor bence. Linqtosql kullanılmalı. Klasik ado.net kullanılacaksa .Net MVC yapısı kullanmaman daha mantıklı kaçıyor bana sorarsan eğer. Neden dersen ado.net te yine linqtosql class yapısını oluşturmalısın çünkü .Net MVC model ağırlıklı bir yapı. Sadece zaman kaybı olacaktır.
Ocak 2014

Hakan Köse, bir soruya yanıt verdi.

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.
Ocak 2014

Gizli Kullanıcı,  yeni bir soru sordu.

Aralık 2013

İbrahim Aydın, bir soruya yanıt verdi.

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

Ali Emre Çakmakoğlu, bir soruya yanıt verdi.

Database kavramında Entity ne demek?

Çok basit bir cevap vermek gerekirse, database üzerinde bir entity, bir satır içindeki tüm bilgilerdir diyebiliriz. Veritabanlarında tablolarınız, entity set olarak adlandırılır ve bu tabloya ait her bir kayıt ise bir entitydir. Entity kavramı daha çok ORM yapılarında karşınıza çıkar. Nesne tabanlı düşünürsünüz ve bir entity sınıfını kullanarak ilişkili veritabanına içerik girebilir, içerik çekebilir, silme ve güncelleme yapabilirsiniz. Ayrıca o entitynin ilişkilerini de belirterek daha kapsamlı ve verimli bir veritabanı modeli hazırlayabilirsiniz.
Ekim 2013

Cem Başaranoğlu, bir soruya yanıt verdi.

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.
Ekim 2013

Eski Inploider, bir soruya yanıt verdi.

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
Daha fazla

22 kişi

Konunun Takipçileri

Alt Konu Başlıkları

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