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.
1 2 3 4 5 6 7 8 9 |
public partial class Video { public int ID { get; set; } public string Title { get; set; } public DateTime CreatedOn { get; set; } [NotMapped] public int ViewCount { get; set; } } |
1 |
DataTable dtVideoList = _sqlHelper.GetDataTable("bla bla bla"); |
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.
1 2 3 4 5 6 7 8 |
List <Video> videoList = dtVideoList.AsEnumerable().Select(row => new Video { ID = row.Field<int>("VideoID"), Title = row.Field<string>("VideoTitle"), CreatedOn = row.Field<DateTime>("VideoCreatedOn"), ViewCount = row.Field<Int32>("Count") }).OrderByDescending(x => x.ViewCount).ToList(); |
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