使用带有ExecuteFunction SP调用的unicode参数

时间:2011-11-28 18:02:32

标签: c# .net

我需要一些帮助来解决我似乎无法找到解决方案的问题。我有一个SQL Server存储过程接受两个nvarchar参数。在我的C#代码中,我使用以下设置调用SP:

searchStringParameter = new ObjectParameter("searchString", "有者明确的");

filterParameter = new ObjectParameter("filterParameter", "Approved");

return base.ExecuteFunction<Nullable<global::System.Int64>>("Find", searchStringParameter, filterParameter);

但是,在SQL Server端,它将参数捕获为:“?????” (5个问号)和“已批准”。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我们遇到了类似的情况,因为我们的SP最初将参数定义为varchar而不是nvarchar。在某些时候它被纠正为nvarchar。

我们仍然会在C#端看到unicode,在Sql服务器端看到&#34;?&#34;#。

然而,然后做EF6&#34;更新&#34;没有改变edmx。有必要:

  1. 使用右键单击&#34;打开... Xml&#34;,然后
  2. 手动打开edmx
  3. 查找参数名称并将其从varchar更改为nvarchar。
  4. 使用&#34;模型浏览器&#34;无法更改这些字段。属性(F4)。

    希望它有所帮助。