2013-02-23 4 views
2

내가 엔티티 프레임 워크를 사용하여 여기에 설명 된 바와 같이 저장 프로 시저를 호출 오전 : http://msdn.microsoft.com/en-us/data/jj691402.aspxObjectContext.Translate -를 사용하여 다른 속성 이름

"코드하여 여러 결과 집합을 액세스"에서 저장 프로 시저 내가 ObjectContext를 사용하고 실행 후. Translate 메서드를 사용하여 결과를 데이터 계약 객체로 가져 오면 데이터 계약 속성이 반환 된 데이터와 일치해야합니다.

다른 속성 이름을 사용할 수있는 방법이 있습니까? 그럼에도 불구하고 여전히 Translate 메서드가 올바르게 매핑되어 있습니까?

예를 들어 listID, listName 열을 반환하는 국가 목록을 가져 오는 절차가 있습니다. 이러한 이름 대신 ID와 이름 만 갖는 데이터 계약 개체를 원합니다.

DataMember 특성에 Name 매개 변수를 추가했지만 작동하지 않았습니다.

[DataMember(Name="listID")] 
public string ID { get; set;} 

답변

1

아니요, 이렇게하면 안됩니다. Translate는 독자 내부의 데이터 세트를 반복하고 전달한 엔티티에 정의 된 속성에 직접 매핑합니다. 데이터 멤버 주석에 대해서는 알지 못합니다. 데이터 주석은 직렬화에 사용되므로 데이터 레이어는이를 알 필요가 없습니다.

호출중인 쿼리에 직접 매핑되는 속성이있는 엔티티에서 Translate를 호출하는 것이 좋습니다. 그런 다음 DataMember에서 직렬화를 위해 변환 될 이름을 정의하십시오. 예를 들어 쿼리에서 listID 및 listName을 반환하는 경우 :

[DataMember("ID")] 
public string listID { get; set; } 

[DataMember("Name")] 
public string listName { get; set; } 
+0

클라이언트 (프런트 엔드)와 서비스/데이터 계층간에 데이터 계약을 공유하므로 저장 프로 시저가 반환하는 열 이름 . – AndrewR