实体框架程序不起作用

时间:2017-08-28 19:54:25

标签: c# sql-server entity-framework procedure

当我运行此代码并在SQL Server Profiler中观看时,没有返回值

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

我从参数前面删除了N,然后就可以了。我需要做些什么才能在代码中工作?

这是我的实体程序代码

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);
}

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你想知道为什么删除N s使其运行正常,但N s不运行。 N表示该字符串为Unicode。擦除它们时,该过程接受它,因为它接受非Unicode字符串。您可以在此处查看更多信息:

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