我在表中有一列是:

QuestionDescription nchar(150)


该表的名称是Questions。当我在实体Questions中放入一个空字符串时,表示:

Questions questionObj = new Questions();
questionObj.QuestionDescription = string.Empty();


实体框架在数据库中保存了150个空格的字符串。

为什么?

我试图放置一个空字符串,但它总是放置150个空格。

知道为什么吗?

谢谢

最佳答案

这是因为类型是nchar而不是nvarchar。对于nchar,它将始终是具有您指定的确切字符数的值,因此它将由数据库而不是EF填充空间。如果您要在数据库中使用一个实际上为空的字符串,则应使用nvarchar代替,它可以将字符串值保存为给定的大小,而无需将其填充到给定的大小。

10-07 19:21
查看更多