首页 新闻 会员 周边

关于C# EF生成Sql语句的问题

0
[已解决问题] 解决于 2018-05-23 20:06

因为数据需要存储德语,需要unicode编码,字段类型设置为nvarchar类型了,但是sql 语句insert的时候需要在参数前面带一个N,这个用EF可以实现吗?

最佳解决方案的主页 最佳解决方案 | 初学一级 | 园豆:25
提问于:2018-05-23 17:14
< >
分享
最佳答案
0

记得EF默认就会加上N

奖励园豆:5
dudu | 高人七级 |园豆:31007 | 2018-05-23 17:18

追踪的语句是这样的

我的语句是update [Claws.Amazon].[dbo].[ParentNode] set AnotherName=N'45679' where Country='DE' and AmazonKey='123456',但是德语写进数据库就是乱码,我自己写的sql语句就没乱码

最佳解决方案 | 园豆:25 (初学一级) | 2018-05-23 18:20

是我忘记更新EF模型了

最佳解决方案 | 园豆:25 (初学一级) | 2018-05-23 20:06
其他回答(3)
0

可以直接数据库跟踪一下EF执行的SQL语句看看

华临天下 | 园豆:1501 (小虾三级) | 2018-05-23 17:23

看一下我在1楼的回复

支持(0) 反对(0) 最佳解决方案 | 园豆:25 (初学一级) | 2018-05-23 18:20
0

你这个是varchar类型.

得要是nvarcahr类型.

你用ef的属性绑定.

builder.Entity<实体类>().Property(a => a.AnotherName).HasMaxLength(64).IsUnicode()

这样试试.

吴瑞祥 | 园豆:29449 (高人七级) | 2018-05-23 18:25

好的,谢谢

支持(0) 反对(0) 最佳解决方案 | 园豆:25 (初学一级) | 2018-05-23 18:28

.HasMaxLength(64).IsUnicode(),好像EF没有这个方法啊

支持(0) 反对(0) 最佳解决方案 | 园豆:25 (初学一级) | 2018-05-23 18:34
0

其实我想问的是编码问题,只要把数据库类型改为nvarchar就可以了,我忘记了更新EF模型,不过不更新模型自己写的sql语句带N也不会出现乱码.

最佳解决方案 | 园豆:25 (初学一级) | 2018-05-23 20:04

 问题是:你ef的结构描述和数据库的不匹配.

不管用什么方法.改成匹配的就行了.

 

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2018-05-23 20:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册