2011-03-18 3 views
3

저는 NSericeBus로 처리 된 명령과 읽기 전용 OData 피드를 통해 제공되는 쿼리로 CQRS 스타일 시스템에서 작업하고 있습니다.Hibernate를 사용하여 WCF 데이터 서비스 (OData)에서 성공 했습니까?

우리는 Entity Framework 공급자가 허용하지 않는 피드 (계산 된 필드 등)에 데이터가 나타나는 방식을 제어 할 수 있도록 NHibernate에서 지원하는 WCF 데이터 서비스 피드를 갖고 싶습니다.

그러나 Linq와 NHibernate의 리플렉션 제공 업체를 사용하면 관련 엔터티 (예 : http://server/feed/Foo(1)/Bar)로 이동할 때 오류가 발생합니다.

누군가가 NHibernate에서 지원하는 WCF 데이터 서비스 작업에 Linq를 만들었습니까?

답변

0

어떻게 Entity Framework에서 허용하지 않는 작업을 수행하고 싶습니까?

계산 된 필드가 필요한 경우 계산 된 필드를 사용하여 DB (SQL Server?)에서보기를 정의하고 해당보기를 읽기 전용 엔터티 모델에 통합 할 수 있습니다.

필드를 사전 계산해야하는 경우 비정규 화 코드에서 간단히 입력 할 수 있습니다.

EF로 할 수없는 시나리오가 무엇입니까?

+0

Roy, C# TimeSpan에 해당하는 'Duration'이라는 열이있는 테이블을 상상해보십시오. 이 값은 데이터베이스에 틱으로 저장됩니다 (10 분의 1 초 정도, 사용자 친화적이지는 않음). Duration을 분으로 변환하는 'DurationInMinutes'라는 열을 제시하고자합니다. –

+0

보기에서 쉽게 할 수 있습니다. 그러면보기에는 SELECT X, Y, Duration/(60 * 10 * 1e6) AS DurationInMinutes, Z FROM ...과 같은 내용이 포함됩니다. 그러면 실제 테이블처럼 뷰를 쿼리 할 수 ​​있습니다. –

0

가장 좋아하는 것 : NHibernate.OData입니다. 이것은 전달 된 odata를 취하여 NHibernate가 DetachedCriteria 인스턴스로 자동 변환하도록합니다.

+0

저스틴, 나는 다른 방향으로 가려고했다. NHibernate로부터 oData 피드를 생성했다. 나는 더 이상 oData 또는 NHibernate (RavenDB 대신)를 사용하지 않으며, 삶이 훨씬 더 좋다! –

관련 문제