C# 从实体框架发送阿拉伯语单词时,存储过程不返回结果

C# 从实体框架发送阿拉伯语单词时,存储过程不返回结果,c#,sql-server,entity-framework-6,C#,Sql Server,Entity Framework 6,我在SQL Server中有一个存储过程,我向它发送一个单词,并返回包含该单词的所有结果,我更新了实体模型以获得该存储 它对英语单词很有效,但对阿拉伯语它不会返回任何内容 程序: Create Procedure GetResults @searchKeyword nvarchar(50) As select * from products where title like N'%' + @searchKeyword + '%' C: 第一: 然后: 如果这

我在SQL Server中有一个存储过程,我向它发送一个单词,并返回包含该单词的所有结果,我更新了实体模型以获得该存储

它对英语单词很有效,但对阿拉伯语它不会返回任何内容

程序:

Create Procedure GetResults
    @searchKeyword nvarchar(50)
As
    select * 
    from products 
    where title like N'%' + @searchKeyword + '%'
C:

第一:

然后:

如果这不起作用,那么这就起作用了:

var products = Context.Database.SqlQuery<Product>("EXEC GetResults @keyword", new SqlParameter("@keyword", "بطاقة")).ToList();

我认为当程序第一次映射到实体时,参数是varchar 然后改成了nvarchar。
我以XML形式打开了edmx文件,发现它映射为varchar,将其更改为nvarchar,它工作得非常好

在SQL server中执行SQL代码时是否有任何结果?选择*从标题为N'%arabic_word_goes_here%'的产品中,感谢您的快速回复,是的,当我直接使用阿拉伯语单词时,查询返回结果,对于EXEC GetResults'arabic_word',效果很好?仅当我在其前面添加N时,EXEC GetResults'不起作用,EXEC GetResults N'بطاقة'works标题栏类型是什么?@a.tolba检查我的答案。
using System.Data.Entity;
public void GetResultsFunc(string keyword)
{
    var result = Context.GetResults(DbFunctions.AsUnicode(keyword));
}
var products = Context.Database.SqlQuery<Product>("EXEC GetResults @keyword", new SqlParameter("@keyword", "بطاقة")).ToList();