因为数据需要存储德语,需要unicode编码,字段类型设置为nvarchar类型了,但是sql 语句insert的时候需要在参数前面带一个N,这个用EF可以实现吗?
记得EF默认就会加上N
追踪的语句是这样的
我的语句是update [Claws.Amazon].[dbo].[ParentNode] set AnotherName=N'45679' where Country='DE' and AmazonKey='123456',但是德语写进数据库就是乱码,我自己写的sql语句就没乱码
是我忘记更新EF模型了
可以直接数据库跟踪一下EF执行的SQL语句看看
看一下我在1楼的回复
你这个是varchar类型.
得要是nvarcahr类型.
你用ef的属性绑定.
builder.Entity<实体类>().Property(a => a.AnotherName).HasMaxLength(64).IsUnicode()
这样试试.
好的,谢谢
.HasMaxLength(64).IsUnicode(),好像EF没有这个方法啊
其实我想问的是编码问题,只要把数据库类型改为nvarchar就可以了,我忘记了更新EF模型,不过不更新模型自己写的sql语句带N也不会出现乱码.
问题是:你ef的结构描述和数据库的不匹配.
不管用什么方法.改成匹配的就行了.