2017-08-28 14 views
0

Wenn ich diesen Code ausführen und beobachten Sie in SQL Server Profiler arbeiten, gibt es keinen RückgabewertEntity Framework Verfahren nicht

exec [dbo].[p_PersonelEkleAgiGetir] 
    @MedeniDurum = N'Evli', 
    @CocukSayisi = 0, 
    @EsCalismaDurumu = N'Çalışmıyor' 

ich die N gelöscht von vor den Parametern und dann funktioniert es. Was muss ich tun, damit dies im Code funktioniert?

Dies ist meine Einheit-Prozedur-Code

public virtual ObjectResult<Nullable<decimal>> p_PersonelEkleAgiGetir(string medeniDurum, Nullable<int> cocukSayisi, string esCalismaDurumu) 
{ 
    var medeniDurumParameter = medeniDurum != null ? 
     new ObjectParameter("MedeniDurum", medeniDurum) : 
     new ObjectParameter("MedeniDurum", typeof(string)); 

    var cocukSayisiParameter = cocukSayisi.HasValue ? 
     new ObjectParameter("CocukSayisi", cocukSayisi) : 
     new ObjectParameter("CocukSayisi", typeof(int)); 

    var esCalismaDurumuParameter = esCalismaDurumu != null ? 
     new ObjectParameter("EsCalismaDurumu", esCalismaDurumu) : 
     new ObjectParameter("EsCalismaDurumu", typeof(string)); 

    return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Nullable<decimal>>("p_PersonelEkleAgiGetir", medeniDurumParameter, cocukSayisiParameter, esCalismaDurumuParameter); 
} 

Antwort

1

Wenn ich verstehe Ihre Frage gut, Sie wollen wissen, warum das Löschen der N s es richtig macht laufen, aber mit der N s es nicht laufen. Die N zeigt an, dass die Zeichenfolge eine Unicode ist. Wenn Sie sie löschen, wird sie von der Prozedur akzeptiert, da sie Nicht-Unicode-Zeichenfolgen akzeptiert. Sie können weitere Informationen hier sehen:

What is the meaning of the prefix N in T-SQL statements?