2009-09-08 5 views
0

저는 현재 a demo on Brad Abrams' blog을 기반으로하는 SQL Server 2008 Express 데이터베이스에 연결된 Silverlight 응용 프로그램을 만들고 있습니다. (참고 : 지정된 링크의 데모 파일은 실제로 live running application에 표시된 것과 다른 솔루션이며 블로그 게시물의 데모는 Entity Framework를 사용하고 라이브 응용 프로그램은 POCO를 사용합니다.Entity Framework에서 nvarchar (MAX) 필드에 대해 잘린 문자열을 반환하지 않는 이유는 무엇입니까?

왜 엔티티 프레임 워크가 nvarchar (MAX)로 설정된 필드의 고정 너비 문자열을 반환하는지 파악하려고합니다. ("고정 너비"란 문자열의 내용 끝에 공백이있는 "DC"와 같은 것을 의미합니다.

포함 된 MDF 파일에 연결된 데모 파일에서 이름 필드는 nvarchar (max) 필드이고 엔터티 프레임 워크는 잘린 문자열을 올바르게 반환합니다. 그러나 SQLEXPRESS 데이터베이스에 연결되어있는 개인 응용 프로그램에서 nvarchar (max) 필드는 여전히 끝에 공백, 고정 폭 및 트림되지 않은 상태로 반환됩니다. 런타임에 엔터티 모델 C# 파일의 return this._itemPrefix; 행 위로 마우스를 가져 가면 공백이있는 항목이 트림되지 않습니다. 나는 그의 데모에서는 작동하지만 내 파일에서는 작동하지 않는 이유를 알 수 없다.

내가 처리 할 수있는 문자열을 반환하도록 entityModel.Designer.cs의 코드를 변경하는 것 외에 다른 작업을 수행 할 수 있습니까? 다른 사람이이 문제에 부딪혔습니까?

답변

4

몇 개의 공백이 있습니까? 내가 생각할 수있는 유일한 이유는 그 방법으로 문자열을 저장했기 때문입니다.
의도 한대로 작업하십시오.

Entity Framework를 사용하는 경우 문자열을 저장하기 전에 문자열을 Trim() 또는 TrimEnd()으로 트리밍해야합니다.

+1

SQL Server 데이터베이스 테이블의 모든 값에서 RTrim()을 실행하지 않은 것 같습니다. 나는 그들의 필드를 nchar에서 nvarchar로 바꿨지만 값이 여전히 채워져 있는지 확인하지는 않았습니다. 서버에서 RTRIM으로 필드를 업데이트하면 모든 것이 Entity Framework에서 훌륭하게 작동했습니다. 당신의 도움을 주셔서 감사합니다! –

관련 문제