2013-07-23 2 views
7

우리는 데이터베이스에서 추적하지 않는 서버의 개체에 추가 속성을 추가하고 있습니다. 데이터는 클라이언트로 반환되지만 breeze로 구체화 된 객체에는 속성으로 사용되지 않습니다. breeze로 돌아가 데이터를 저장하는 데이터베이스에 매핑하지 않는 객체에 속성을 추가하려면 어떻게해야합니까?엔터티 프레임 워크 엔터티에 매핑되지 않은 서버 측 속성 포함

예 : 위젯 클래스 속성 A - 데이터베이스에 매핑 됨 속성 B - [NotMapped] 특성이 데이터베이스에 저장되지 않도록합니다. 그것은 서버에 의해 즉시 계산됩니다. 우리는 우리가 얻을 클라이언트의 객체 얻을 때

: 위젯 클래스 =을 { 재산권 A : ko.observable (A 용) }

재산권 B가 없습니다. 우리는 우리가 볼 수있는 서버에 의해 반환 된 JSON을 볼 때

는 :

위젯 클래스 = { 재산권 A는 : A의 값, 재산권 B는 : B 용}

답변

4

등록 EFContextProvider에 의해 생성 된 메타 데이터의 일부가 아닌, 그래서 그 속성은 클라이언트 측 바람 엔티티에서 사용할 수 없습니다. 그러나 js에서 클라이언트 측 엔터티를 확장하고 entityType에 속성을 추가 할 수 있습니다 (초기 값 설정 사용). 그러면 json 객체가 서버에서 검색 될 때 속성 값이 올바르게 설정됩니다. 그것은 null 값이 아니다

http://www.breezejs.com/documentation/extending-entities

+2

개가 맞습니다. 이것은 나를 위해 일했다. breeze 팀이 공유 한 문서를 읽으십시오. 엔터티 유형 생성자에서 서버의 엔티티와 동일한 이름을 사용하여 NotMapped 속성을 기본값으로 선언해야합니다 (대문자로 시작하는 경우에는 동일하게 따르십시오). 예 : 엔티티 "TheEntity"에는 NotMapped bool 속성 인 "Not"가 있습니다. 그런 다음 자바 스크립트 : metadataStore.registerEntityTypeCtor ('TheEntity', function() {this.Not = ko.observable (false);}); 그리고 그게 전부입니다, 그것은 서버와 다른 값이 아니라면 ctor에 제공된 값을 사용할 것입니다. – kzfabi

+0

이것은 매우 불편합니다! 엔티티에 NotMapped 쓰기 가능한 서버 속성을 추가 할 수있는 권한이 필요합니다! – blazkovicz

0

이 뭔가처럼 들린다 Ward Bell이 언급 한 속성이 null 값을 가질 수 있으며 기본적으로 Breeze는 반환하지 않습니다.

여기에 언급 된 사용자 정의 breeze 구성 클래스를 추가하여 Json에서 null 값이 반환되는 방식을 조정하십시오. 이 클래스를 웹 API 프로젝트에 추가하면 Breeze가 자동으로이 클래스를 찾아 구성합니다. NotMapped 속성

http://www.breezejs.com/documentation/web-api-controller

+0

번호. 클라이언트가 서버에 반환 한 json 데이터의 속성을 볼 수 있습니다. 엔터티 형식 정의에 포함되지 않은 클라이언트에 반환 된 속성에 액세스 할 수있는 방법이 있습니까? – StewartArmbrecht

관련 문제