2009-09-08 37 views
0

我目前正在研究連接到基於a demo on Brad Abrams' blog的SQL Server 2008 Express數據庫的Silverlight應用程序。 (注意:指定鏈接上的演示文件實際上是與live running application上顯示的不同的解決方案。博客文章中的演示使用實體框架,而實時應用程序使用POCO)。爲什麼實體框架不會爲nvarchar(MAX)字段返回修剪過的字符串?

我想弄清楚爲什麼實體框架爲設置爲nvarchar(MAX)的字段返回固定寬度的字符串。 (通過「固定寬度」,我的意思是像「DC」,在字符串內容的末尾有空白處)。

在與包含的MDF文件連接的演示文件中,名稱字段是nvarchar(max)字段,實體框架正確地返回了修剪後的字符串。但是,在我的與SQLEXPRESS數據庫連接的個人應用程序中,nvarchar(max)字段仍以最後一個空格,固定寬度和未修剪返回。在運行時將鼠標懸停在實體模型C#文件的return this._itemPrefix;行上時,它會顯示帶有空白區域的項目,無修剪。我無法弄清楚爲什麼它在他的演示中工作,但不在我的文件中。

除了改變entityModel.Designer.cs中的代碼讓它返回一個修剪過的字符串之外,我能做些什麼嗎?有沒有人遇到過這個問題?

回答

4

多少個空格?我能想到的唯一原因是因爲你以這種方式存儲了字符串。
按預期工作。

如果您使用實體框架,您應該在存儲它們之前用Trim()TrimEnd()修剪字符串。

+1

我沒有想過在SQL Server數據庫表中的所有值上運行RTrim()。我已經將它們的字段從nchar更改爲nvarchar,但我沒有考慮檢查值是否仍填充。 果然,當我在服務器上用RTRIM更新這些字段時,在Entity Framework中一切都很好。謝謝你的幫助! – 2009-09-08 11:58:44

相關問題