26 Temmuz 2013 Cuma

LINQ - unable to create a constant value of type ‘system.object’. only primitive types



Günlerden yine bir 'iş günü' , aylardan ise Ramazan'dı.. Ve ben yine servislerle, sorgularla gönül eylemekte idim :)... 
LINQPad de sorgumu yazdım,, güzel güzel verilerim geliyordu, servisime aktarabilirim bunu artık diye classıma yapıştırdııım,, o da nesi,, LINQPad de tık demeden çalışan sorgu, "unable to create a constant value of type ‘system.object’. only primitive types" hatası verdii. Zaaten birşey de bir seferde olsun diye ağzımın içinde söylenee söylenee, yarım günümü bu hatayı araştırarak harcadım. Forumlarda "Contains" metodunu "Any" ye çevirerek çözmüşler genelde ancak contains leri tamamen kaldırsam bile aynı hatayı almaya devam ettim.. Evet, sinir olmuştum ve bunun için suçlanamazdım. Açlığın verdiği moralsizliğin de etkisiyle o gün uğraşmayı bıraktım, ertesi gün bir stajer geldi. İyi ki de gelmiş, hatayı hemen araştırıp hemen çözüm buldu.. bir önceki günkü yarım günüme mi yanayıım, çözümün bu kadar basit olmasına mı yanayım bilmiyorum :) 
Meğer hata Equals dan kaynaklanıyormuş.. .Equals yerine == koyunca hatadan eser kalmamıştı. Bu hataya ve bu çözüme teessüflerimi sunarken daha fazla geyik yapmadan kodlarımı yapıştırayım :)


Çalışmamakta direnen sorgum;

from p in harmonyEntities.VDB_ASSETS
                             where p.PRM1.Equals(1) &&
                                   (from q in harmonyEntities.VDB_ASSETS
                                    where q.GUID_PARENT.Equals(new Guid("D5610D87-C220-477F-BA14-009EAB24EBE4")) &&
                                    q.PRM1.Equals(1) && q.PRM0.Contains("\\")
                                    select q.PRM0.Substring(9, 50)).Contains(p.PRM0)
                             select p


Çalışıp ruhuma neş'e sunan sorgum;

from p in harmonyEntities.VDB_ASSETS
                             where p.PRM1 == 1 &&
                                   (from q in harmonyEntities.VDB_ASSETS
                                    where q.GUID_PARENT == (new Guid("D5610D87-C220-477F-BA14-009EAB24EBE4")) &&
                                    q.PRM1 == 1 && q.PRM0.Contains("\\")
                                    select q.PRM0.Substring(9, 50)).Contains(p.PRM0)
                             select p


Vee Emeği geçen, isminin gizli tutulmasını rica eden, iki gündür kuşlar tarafından "lazımlık" olarak kullanılan stajere teşekkürlerini sunaaan,, bendeniz Monooo :) (buraya bir foto yakışırdı ama gülen surat benmişim şakacıktan.)


2 yorum:

  1. Bu yazıyla çok müteşekkir olduğumu belirtmek isterim.22 yıllık ömrü hayatım boyunca ilk defa bir yazı benim için yazıldı. Kuşların vermek istediği mesaj bu olsa gerek ;) Kuşlar sayesinde değerim ortaya çıktı :)
    Beni o güzelim ağacın altındaki banka da götürdüğün içinde ayrıca teşekkür eder,benim bloğuma da beklerim.

    YanıtlaSil
    Yanıtlar
    1. Yaani Gamze o kadar gizem yarattım "ismini vermek istemeyen stajer" diye direkt blog adresini verdin tebrik ederim :P

      o güzelim ağacın altına götürmek diyerek yanlış anlaşılmaların araladığın kapısını biraz daha ittirip şu meşhuur dizeleri yazmadan edemeyeceğim ;D ;

      gölgesinde mevsimler boyu oturduğumuz
      hep elele vererek hayaller kurduğumuz
      kimi üzgün kimi gün neşeyle dolduğumuz
      o ağacın altını şimdi arıyormusun
      o güzel günler için bilmem yanıyormusun

      o güzelim bloğuna da geliriz.
      Eyyorlamam bu kadar ;)

      Sil