为什么Entity Framework不为nvarchar(MAX)字段返回修剪后的字符串?

时间:2009-09-08 04:23:17

标签: c# sql-server silverlight entity-framework ado.net

我目前正在开发一个连接到SQL Server 2008 Express数据库的Silverlight应用程序,该数据库主要基于a demo on Brad Abrams' blog(注意:指定链接上的演示文件实际上是他在live running application上显示的解决方案。博客文章中的演示使用实体框架,而实时应用程序使用POCO)。 / em>的

我试图弄清楚为什么Entity框架为设置为nvarchar(MAX)的字段返回固定宽度字符串。 (通过“固定宽度”,我的意思是“DC”,其中在字符串内容的末尾有空白区域)。

在连接到包含的MDF文件的演示文件中,Name字段是nvarchar(max)字段,实体框架正确返回修剪后的字符串。但是,在我的个人应用程序(连接到SQLEXPRESS数据库)中,仍会返回nvarchar(max)字段,其末尾有空白,固定宽度和未修剪。当我在运行时将鼠标悬停在实体模型C#文件的return this._itemPrefix;行上时,它会显示带有空白区域的项目,未修剪。我无法弄清楚为什么它在他的演示中有效但不在我的文件中。

除了改变entityModel.Designer.cs中的代码以使其返回修剪后的字符串之外,我能做些什么吗?还有其他人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:4)

有多少个空格?我能想到的唯一原因是因为你以这种方式存储了字符串。
按预期工作。

如果您使用的是实体框架,则应在存储字符串时使用Trim()TrimEnd()修剪字符串。