2013-05-30 4 views
0

예를 들어, "부모"(EntityType의 객체) 및 "Children"(EntityType의 객체 배열)과 같은 탐색 속성이있는 엔티티가 있습니다. 다른 관리자 인 탐색 속성 "Parent"및 "Children"은 null 또는 비어 있습니다.Breeze 가져 오기/내보내기에서 null 또는 빈 탐색 속성 생성

public abstract class HClass 
{   
    public HClass() 
    { 
     Children = new List<HClass>(); 
    } 
    [Key] 
    public int Id { get; set; } 
    public Nullable<int> ParentId { get; set; } 
    public string Name { get; set; } 

    public virtual ICollection<HClass> Children { get; set; } 
    public virtual HClass Parent { get; set; } 
} 

내가 상속과 다른 클래스가 있습니다 :

public class AClass : HClass 
{ 
    public string Observation { get; set; } 
} 

public class BClass : HClass 
{ 
    public int Number { get; set; } 
} 

DbContext 나는 협회 양방향과 계층 클래스가

var query = entityQuery.from('Projects'); 
var entitiesTmp = manager.executeQueryLocally(query); //entitiesTmp have navigation properties 
var exportData = manager.exportEntities(entitiesTmp); 
var mgrTmp = new breeze.EntityManager(config.remoteServiceName); 
mgrTmp.importEntities(exportData); 
var entitiesTmp1 = mgrTmp.executeQueryLocally(query); //entitiesTmp1 doesn't have navigation properties 

:

나는 다음 라인을 사용 서버 :

public DbSet<AClass> Projects { get; set; } 
public DbSet<BClass> OtherProjects { get; set; } 

제발,이 오류와 함께 도와주세요.

참고 : 나는 바람에게 1.3.4

답변

1

EntityManager.exportEntities (entitiesToExport)를 호출을 사용하는 경우에만 전달 된 개체에 대한 탐색 속성이되지 않은 것을에서 전달되는 그 실체를 수출 우리가 즉. 내보내기 도중 그래프 traversel을하지 않고 최상위 엔티티 만 내보낼 수 있습니다. 그렇지 않으면 작은 내보내기로 인해 로컬 캐시의 상당 부분이 손상 될 수 있습니다.

당신이하고 싶은 것에는 두 가지 접근법이 있습니다.

가장 간단하고 간단한 방법은 전체 entityManager 캐시를 내보내는 것입니다. 즉, args가없는 EntityManager.exportEntities().

두 번째는 breeze 메타 데이터를 사용하고 아래쪽의 최상위 엔티티에서 엔티티 그래프를 직접 탐색하여 내보낼 엔티티 목록을 작성하는 것입니다. 그래프가 매우 빠르게 커질 수 있으므로주의하십시오.

희망이 도움이됩니다.

+1

세 번째로, 최선의 방법이지만 ... 일부 작업은 루트와 관련 엔터티로 구성된 엔터티 컬렉션을 반환하는 EntityManager.getEntityGraphs (rootEntities, [navigationPathStringArray]) 메서드를 작성하는 것입니다. 경로 (들). 경로는 Breeze'select '의 구문을 따라야합니다. 그런 다음 Breeze 프로젝트에 기여하십시오. 우리는 그것을 좋아할 것입니다. – Ward

+0

제안 해 주셔서 감사합니다. 귀하의 도움은 매우 감사하겠습니다. – kuskunko

관련 문제