我在表中有一列是:
QuestionDescription nchar(150)
该表的名称是
Questions
。当我在实体Questions
中放入一个空字符串时,表示:Questions questionObj = new Questions();
questionObj.QuestionDescription = string.Empty();
实体框架在数据库中保存了150个空格的字符串。
为什么?
我试图放置一个空字符串,但它总是放置150个空格。
知道为什么吗?
谢谢
最佳答案
这是因为类型是nchar
而不是nvarchar
。对于nchar
,它将始终是具有您指定的确切字符数的值,因此它将由数据库而不是EF填充空间。如果您要在数据库中使用一个实际上为空的字符串,则应使用nvarchar
代替,它可以将字符串值保存为给定的大小,而无需将其填充到给定的大小。