7

我有一个带有 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 值。怎么做?我知道 AsNonUnicode 方法,但此方法仅适用于 LINQ。

4

1 回答 1

3
  1. 您确定formData.Get("description")返回 UTF-8 字符串(它没有在某处转换)吗?

  2. 您在实体框架中的方法是什么?代码优先/设计优先/数据库优先?
    尝试删除数据库并重新创建-删除数据库,然后在设计器中右键单击->Generate database from model...

  3. 从 Nu-get 包管理器获取 Entity Framework Profiler 并查看发送到数据库的查询。

于 2013-06-23T11:42:14.640 回答