带有实体框架的Unicode [英] Unicode with Entity Framework

查看:45
本文介绍了带有实体框架的Unicode的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a table with nvarchar field (MS SQL Server 2008 R2). For testing, this code works fine:

Update [Screenshots] set name=N'Значение' where id=230246

现在我创建了实体框架模型,我将Unicode设置为True

right now I created Entity Framework model, I have set Unicode as True

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

then I try to update my record:

    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。

but I got "?????" instead of unicode value. How to do it? I know about AsNonUnicode method, but this method works only for LINQ.

推荐答案


  1. Are您确定 formData.Get( description)返回UTF-8字符串(未在某处转换)吗?

  1. Are you sure that formData.Get("description") returns UTF-8 string (that it isn't converted somewhere)?

您在实体框架中采用的方法是什么?代码优先/设计优先/数据库优先?

尝试删除数据库并重新创建-删除数据库,然后在设计器中右键单击-> 从模型生成数据库...

What is your approach in entity framework? Code-first/Design-first/Database-first?
Try to remove database and recreate - remove database and then in designer right click -> Generate database from model...

从Nu-get程序包管理器中获取Entity Framework Profiler,并查看向数据库发送的查询。

Get Entity Framework Profiler from Nu-get package manager and see what query is sending to database.

这篇关于带有实体框架的Unicode的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆