C# DataTable To Object Mapping

Merhaba arkadaşlar,

Bugün uzun zamandır paylaşmak istediğim çok kullanılan bir convert işlemi üzerine yazı eklemek istedim.

Bazı durumlarda gerekli olan LINQ sorguları projemiz içerisinde gerçekten can sıkıcı ve zorlayıcı olabiliyor.

Burada imdada T-SQL veya farklı bir yol ile çekilen dataların, objemizin içine map’lenmesi yolu yetişiyor.

Senaryomuza göre, Video classımıza bir DataTable‘dan dataların maplenmesini göstereceğim.

Video Classımızın içeriği aşağıdadır.

dtVideoList DataTable’ımıza verileri çektik.

Ardından aşağıdaki gibi map’lemek istediğimiz sorgumuzda yer alan VideoID, VideoTitle, VideoCreatedOn, Count alanlarımız Video classımızda yer alan ID,Title, CreatedOn, ViewCount alanlarına maplenmiş olacak.

Son durumda ise sorgumuzda gelen datalar başarı ile Video classımızdaki alanlar ile map’lendi. Bundan sonrası sizin gerçekleştirmek istediğiniz işlemlere göre gerçekleşebilir.

Umarım faydalı olmuştur, bir sonraki yazımda görüşmek üzere

Linq ile önceki ve sonraki kayıtlara ulaşmak

Merhaba arkadaşlar,

Bir proje için kullanmam gereken bir kod parçasını paylaşacağım. Siz kendi ihtiyaçlarınız kapsamında gerekli düzenlemeleri yapabilirsiniz.

Senaryomuz şöyle: Bir haber detay sayfası içerisinde iken bir önceki ve bir sonraki haberlere gitmek için bağlantılarımız mevcut. Bu bağlantıların yer aldığı View‘a Controller‘ımızdan görüntülenen haberden bir önceki ve bir sonraki kayıtların ID‘lerinin atanması gerekmekte.

Bunun aşağıda paylaşmış olduğum kod ile kolaylıkla yapabilirsiniz.

LINQ Hata: The type of one of the expressions in the join clause is incorrect

Merhaba arkadaşlar,

Bu sorunun nedeni büyük ihtimal ile dikkatsizliğimizden kaynaklanır 🙂

LINQ yazarken birden fazla sorguyu join ile birleştirdiğimizde “the type of one of the expressions in the join clause is incorrect” hatası alıyorsanız, sorgu içerisindeki eşleştirdiğiniz alanların tiplerinin aynı olmasına dikkat ediniz.

Hemen örnek kod parçamızı ve sorunun çözümünü aşağıda göstermek istiyorum.

Bir sonraki yazımızda görüşmek üzere

LINQ sorgusunda aynı gün kontrolü (EntityFunctions.TruncateTime)

Merhabalar,

Bir senaryoya göre, projeye giriş yapan kullanıcıların aynı gün içerisinde tekrar girip girmediğini kontrol etmemiz gerekiyor.

Bunun için öncelikle LoginDate değişkenimize, bugüne ait zaman gün bilgilerini Date sınıfını kullanarak atıyoruz.

Hemen ardından LINQ sorgumuzda bu değişkeni, Entity Framework tarafından gelen objemize eşit olup olmadığını kontrol edeceğiz. Bu kontrolü .NET 4.0 ve üzeri tarafından desteklenen EntityFunctions.TruncateTime fonksiyonunu kullanarak gerçekleştirebiliriz.

Kısaca senaryomuz bu şekilde, hemen aşağıda ise bu senaryoyu kod tarafında hayata nasıl geçirebiliriz ona ait bir örnek paylaştım.

Umarım işinize yarar, çalışmalarınızda kolaylıklar dilerim.

Entity Framework Validasyon Hatalarını Yazdırmak (EntityValidationErrors)

Merhabalar,

Entity Framework üzerinde (_db) context’imize kayıt edeceğimiz dataların validasyon hatalarını yazdırmak için aşağıdaki kod bloğunu kullanabiliriz.

Böylelikle validasyona ait hata döndüğünde tek tek hataları görüntüleyebilir ve çözüm üretebiliriz.

Namespace’lerimiz

LINQ ile Random veri çekilmesi

Merhabalar,

Geçmiş zamanda eklemiş olduğum benzer bir konuya buradan ulaşabilirsiniz.
SQL ile Rastgele Kayıt Seçimi

Şimdi gelelim, Kısa örnek senaryo ile LINQ sorgusu ile C# da random veri çekilmesi konusuna.

ASP.NET MVC Projemizde anasayfada karışık (random) olarak gösterilecek kategorilerimiz ve gösterim için bazı kriterlerimiz var.
Bu kategorileri HomeVM modelimize ekleyip, ilk 4 tanesini View’ımızda gönderim, Index View’da göstereceğiz.

Buyrun 🙂

Kod tarafı:

View kodlarımız:

LINQ to SQL Skip() ve Take() Metodları nedir ne işe yararlar ?

Merhabalar,

LINQ to SQL‘da kullanılan en sevdiğim metodlardan 2’si Skip ve Take metodlarıdır. Bir projede kullanmak için karşıma çıkan bu 2’liyi blog’uma eklemeesem olmazdı 🙂

Kısaca anlatmam gerekirse,
Skip metoduna yazacağınız parametre değeri kadar atlanılmasını sağlar.
Take metodunda ise, parametre atlanılan satırdan itibaren kaç satır atlanacağını belirtir.

Buda basit olarak bir Paging(sayfalama) yapısının kurulmasını sağlamaktadır.

Aşağıdaki örnekten kod yapısını inceleyebilir, kendi projelerinize uygum şekilde düzenleyebilirsiniz.