Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 从实体框架检索数据库行时的空白_Database_Entity Framework_Whitespace_Padding_Trim - Fatal编程技术网

Database 从实体框架检索数据库行时的空白

Database 从实体框架检索数据库行时的空白,database,entity-framework,whitespace,padding,trim,Database,Entity Framework,Whitespace,Padding,Trim,我正在使用实体框架,并将用户(用户名和密码)添加到数据库表中。此表有一个UserName列(nchar(20))和一个Password列,该列是散列的(varchar(50)) 当我从数据库中检索用户时,就会出现问题。返回的用户名在末尾用空格填充(直到填充了20个字符)。我已经使用Trim()方法暂时解决了这个问题,但是考虑到我需要对从数据库返回的每个列执行此操作,这似乎不切实际 另一个解决方案是什么 谢谢 如果希望列避免额外的空格,则必须将列转换为nvarchar。我个人不喜欢对长度不固定的值

我正在使用实体框架,并将
用户
用户名
密码
)添加到数据库表中。此表有一个
UserName
列(
nchar(20)
)和一个
Password
列,该列是散列的(
varchar(50)

当我从数据库中检索用户时,就会出现问题。返回的用户名在末尾用空格填充(直到填充了20个字符)。我已经使用
Trim()
方法暂时解决了这个问题,但是考虑到我需要对从数据库返回的每个列执行此操作,这似乎不切实际

另一个解决方案是什么


谢谢

如果希望列避免额外的空格,则必须将列转换为nvarchar。我个人不喜欢对长度不固定的值使用char(n)列。
否则,您必须继续修剪

您不应将固定长度类型
CHAR(n)
NCHAR(n)
用于可能超过5、6个字符的任何长度;它们适用于ISO国家或货币代码,但对于其他任何东西,都可以使用可变长度
VARCHAR(n)
NVARCHAR(n)
-它们没有按定义的长度填充空格-它们只存储真正需要的内容。这是基本的数据库设计101-它绝对与实体框架无关!varchar(n)列也会发生这种情况。我必须将所有varchar(n)列更改为nvarchar(n),以避免出现空白。