c# - 在 ExecuteFunction SP 调用中使用 unicode 参数

标签 c# .net

我需要一些帮助来解决我似乎无法找到解决方案的问题。我有一个接受两个 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。有必要:

  1. 使用右键单击“打开方式... Xml”手动打开 edmx,然后
  2. 找到参数名称并将它们从 varchar 更改为 nvarchar。

无法使用“模型浏览器”属性 (F4) 更改这些字段。

希望对您有所帮助。

关于c# - 在 ExecuteFunction SP 调用中使用 unicode 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8300196/

相关文章:

c# - 在 linq-to-sql 中保护查询授权

c# - 处理 SQL 时间数据类型

.net - 在 OnPreInsert、OnPreUpdate 中将对象添加到关联

c# - YouTube数据API v3:使用服务帐户删除视频:未经授权的客户或请求范围

c# - C# 中的性能计数器不准确

c# - 虚拟列表<T> :“The function evaluation requires all threads to run”

.net - 如何打印StackOverflowException的堆栈跟踪

.net - .NET 中的 XML HTTP POST 集成

c# - 在 UserControl 中绑定(bind)

c# - 使用 Blowfish/CBC/PKCS5Padding 加密和解密数据