none
DINAMIK EXEC SORGUSU VE LINQ SORUNU RRS feed

  • Soru

  • Merhaba, sql ile dinamik bir sorgu oluşturuyorum ve onu exec ile geri döndürüyorum ama c# tarafında linq kullanıyıorum ve sorun çıkarıyor, exec kullanmak zorundayım, bunu linq tarafında nasıl çözebilirim?

    Bostancı

    25 Şubat 2014 Salı 14:11

Yanıtlar

Tüm Yanıtlar

    • "Sorun cikariyor" ne demek?
    • SQL'in nasil, Linq kodun nasil?
    • SP ya da Function, mappingini yaptin mi?
    • Sorgu dinamik ise neden exec kullanmak zorundasin?
    • Düzenleyen CetinBasoz 25 Şubat 2014 Salı 14:30
    25 Şubat 2014 Salı 14:30
  • Sorgu sql server tarafında procedure olarak yazıldı. Arama kriterlerim seçeneğe bağlı,

    şöyle ki



    IF(@INFO=0)

    BEGIN

    SET @ADD_QUERY=@ADD_QUERY+' AND D.ınfo IS NULL OR D.address='''' '

    END

    yani şu paramtre doluysa , where statement i de sorguya ekle gibi, en son ADD_QUERY ile @query değişkenlerini string olarak toplayıp exec ile çalıştırıyorum ve temp table a atıp sqlqct ediyorum. Güzel bir şekilde çalışıyor. Kod aşağıda:

    SET @QUERY=@QUERY+@ADD_QUERY
    CREATE TABLE #TEMP
    (
    ID INT,
    NAME NVARCHAR(MAX),
    ADDRESS NVARCHAR(MAX),
    CATEGORY_ID INT,
    );
    INSERT INTO #TEMP EXEC (@QUERY);
    SELECT * FROM #TEMP 

    ben bu procedurü .net tarafında kullanırken (mvc kullanıyorum) model e atarken şu uyarıyı veriyor.

    "The return types for the following stored procedures could not be detected. Set the return type of each stored procedure in the properties window"

    Dönüş tipi diye bişey yok döndürdüğüm zaten tablo. Ne yapabilirim?


    Bostancı

    25 Şubat 2014 Salı 14:57
  • Ne demek donus tipi yok:) Sana mapping bilgisini soruyor. Senin Id, Name, Address, Category_id alanlarin var. Buna uyan entity ne ise return tipini ona kur.

    • Yanıt Olarak İşaretleyen Özgür Tekbaş 3 Mart 2014 Pazartesi 09:50
    • Yanıt İşaretini Geri Alan K. Yuca 3 Mart 2014 Pazartesi 10:18
    25 Şubat 2014 Salı 15:21
  • Sorun insert ile temp table kaydetmem idi. #temp yerine declare @temp table satırını yazınca sorun düzeldi.

    Bostancı

    • Yanıt Olarak İşaretleyen K. Yuca 3 Mart 2014 Pazartesi 10:20
    3 Mart 2014 Pazartesi 10:20