2010-03-20 2 views

답변

1

NHibernate에 없습니다. Entity 프레임 워크에 대해 잘 모르겠습니다.

XML 필드를 저장하려면 여전히 데이터베이스 마이그레이션이 필요하므로 Entity 프레임 워크 나 다른 프레임 워크에서이 기능을 찾을 때 데이터베이스 스키마 업데이트를 수행 할 수 있습니다.

2

내가 아는 한 당신은 NHibernate에서 이것을 직접 할 수는 없지만 필드를 문자열로 작성하고 분해하고 필드를 직접 매핑하는 대신 해당 속성에 매핑하는 개인 속성을 구현할 수있다.

하지만 처음에해야 할 일이 있는지 잘 모르겠습니다. 일반적으로 요구 사항은 응용 프로그램의 개발 및 수명 동안 발생하는 경향이 있으며 일단 필드 중 하나가 필요하면 - 이제는 해당 필드를 쿼리 할 필요가 없다고 생각할지라도 - 어려움을 겪을 것입니다. 기존 데이터베이스의 테이블에 열을 추가하는 것은 별 효과가 없으며 테이블의 모든 튜플에 대해 XML을 업데이트해야하므로 실제로 열에 하나의 필드 만 저장하는 것이 더 좋습니다. 데이터베이스에 저장하기 전에

최고 감사합니다,
올리버 Hanappi

+0

감사의 올리버. 우리는 그것에 대해 생각해 봤지만 모든 엔티티에 대해 기본 클래스의 ORM 확장을 사용하는 것이 좋을 것입니다. Google 웹 서버에서 사용할 읽기 전용 데이터 모델을 디자인합니다. 따라서 필터가 사용되는 필터가 정의되어 있지만, 우리는 어떤 데이터를 표시 할 것인지를 결정합니다. –

0

당신은 문자열로 XML을 변환 시도 할 수 있습니다.

Entity Framework는 원시 XML 데이터 형식을 지원하지 않습니다. 즉, 엔티티가 XML 열이있는 테이블에 매핑 될 때 XML 열에 대한 등가 엔터티 속성은 문자열입니다. 즉 을 의미합니다. 객체는 일 수 있으며 XML로 연결 해제 및 직렬화됩니다. 자세한 내용은 개체 연속화 (Entity Framework)를 참조하십시오.

http://msdn.microsoft.com/en-us/library/cc716791.aspx

1

예, 직렬화 객체와 IUserType 구현을 사용 NHibernate에이 작업을 수행 할 수 있습니다. This link은 SQL Server XML 필드에 대한 IUserType 구현을 만드는 방법을 설명하고 this link은 개체를 XML 필드에 serialize하는 방법을 설명합니다.

+0

감사의 제이미. 앞서 언급 한 것처럼 여러 속성을 단일 열에 저장하려고합니다. 따라서이 IUserType을 사용하여 동일한 열에 매핑 된 여러 속성이 동시에 변경되는 경우 어떻게됩니까? 늘어나는만큼 내가이 API를 이해 마지막으로 변경 적용됩니다 나머지는 ... –

+0

XML로 유지 될 속성을 구성 요소 개체의 속성으로 매핑합니다. 따라서 IUserType은 구성 요소 개체를 가져 와서 구성 요소 개체를 serialize (NullSafeSet)하고 역 직렬화 (NullSafeGet)합니다. 나는 실제로이 작업을 수행하지 않았습니다. 사용 사례가 있었고 완료 될 수 있음을 알기에 충분했지만 다른 해결책으로 끝났습니다. 불행히도 (희망적으로) 올바른 방향으로 만 당신을 가리킬 수 있습니다. –

관련 문제