Entity framework Unicode与实体框架

Entity framework Unicode与实体框架,entity-framework,unicode,Entity Framework,Unicode,我有一个带有nvarchar字段的表(MS SQL Server 2008 R2)。对于测试,此代码可以正常工作: Update [Screenshots] set name=N'Значение' where id=230246 现在我创建了实体框架模型,我已经将Unicode设置为True 然后我尝试更新我的记录: public void Put(FormDataCollection formData) { string filename = formDa

我有一个带有nvarchar字段的表(MS SQL Server 2008 R2)。对于测试,此代码可以正常工作:

Update [Screenshots] set name=N'Значение' where id=230246
现在我创建了实体框架模型,我已经将Unicode设置为True

然后我尝试更新我的记录:

    public void Put(FormDataCollection formData)
    {
        string filename = formData.Get("filename");
        var screenshot = c.Screenshots.Where(p => p.filename == filename).FirstOrDefault();
        if (screenshot != null)
        {
            screenshot.name = formData.Get("description");
            c.SaveChanges();
        }
    }
但我得到的是“???????”而不是unicode值。怎么做?我知道ascode方法,但这种方法只适用于LINQ

  • 您确定
    formData.Get(“description”)
    返回UTF-8字符串(它没有在某处转换)吗

  • 您在实体框架中的方法是什么?代码优先/设计优先/数据库优先?
    尝试删除数据库并重新创建-删除数据库,然后在设计器中右键单击->
    从模型生成数据库…

  • 从Nu Get package manager获取实体框架探查器,并查看向数据库发送的查询


  • 问题可能在数据库端,而不是EF端吗?正如我所写的,更新[Screenshots]set name=N'3ачаааааааааааа。我可以确定,问题不在数据库端吗?“您确定formData.Get(“description”)返回UTF-8字符串吗?”这句话的措辞很不幸。NET中的所有字符串都是Unicode。一个更好的问题是,它是否返回表单中输入的字符串,也就是说,没有在某个地方被编码弄乱。@millimoose-是的,我的意思是:-)。重新创建了模型,它现在就可以工作了!英孚似乎有“水下石头”。非常感谢。没问题;-),在EF designer中进行更改后,应始终重新创建数据库:)。