我需要一些帮助来解决我似乎无法找到解决方案的问题。我有一个接受两个 nvarchar 参数的 SQL Server 存储过程。在我的 C# 代码中,我使用以下设置调用 SP:
searchStringParameter = new ObjectParameter("searchString", "有者明确的");
filterParameter = new ObjectParameter("filterParameter", "Approved");
return base.ExecuteFunction<Nullable<global::System.Int64>>("Find", searchStringParameter, filterParameter);
但是,在 SQL Server 端,它捕获的参数为:“??????” (5 个问号)和“已批准”。
有什么想法吗?
最佳答案
我们有类似的情况,因为我们的 SP 最初将参数定义为 varchar 而不是 nvarchar。在某些时候它被更正为 nvarchar。
我们仍然会在 C# 端看到 unicode,在 Sql 服务器端看到“?”。
但是,然后执行 EF6“更新”并没有更改 edmx。有必要:
- 使用右键单击“打开方式... Xml”手动打开 edmx,然后
- 找到参数名称并将它们从 varchar 更改为 nvarchar。
无法使用“模型浏览器”属性 (F4) 更改这些字段。
希望对您有所帮助。
关于c# - 在 ExecuteFunction SP 调用中使用 unicode 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8300196/