我目前正在研究連接到基於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中的代碼讓它返回一個修剪過的字符串之外,我能做些什麼嗎?有沒有人遇到過這個問題?
我沒有想過在SQL Server數據庫表中的所有值上運行RTrim()。我已經將它們的字段從nchar更改爲nvarchar,但我沒有考慮檢查值是否仍填充。 果然,當我在服務器上用RTRIM更新這些字段時,在Entity Framework中一切都很好。謝謝你的幫助! – 2009-09-08 11:58:44