****************이 문제가 해결되었습니다 (자체 유도 된 hehe입니다!). ****** ******* 그래서 "DrugOptions"를 UI에 쉽게 바인딩 할 수 있습니다. 나는 각 유형의 약물 옵션에 대해 약물에 대해 고객 속성을 만들었습니다.json 데이터가 너무 커서 (처리 됨) Breezejs 엔티티가 저장되지 않음
이 코드가 실제로 무엇을하는지 이해하지 못했습니다.breeze에 엔티티 변경 사항을 보내기 전에 clientside 속성을 제거하겠다고 생각했습니다. 그것은 목적이 아닙니다.
그래서 breeze는 클라이언트 측 속성에 대해 잘 모르기 때문에 혼동스러워했습니다.
if (changedProp === 'solidOption') {
delete changeArgs.entity.entityAspect.originalValues[changedProp];
}
나는 컨트롤러에 이러한 속성을 이동하고 지금은 완벽하게 괜찮습니다 :)
브리즈 내가 그것을 저장할 통과하고있는 객체 모델을 고려 매우 큰 파일을 생성 할 것으로 보인다.
약물 옵션 1 개를 사용할 수있는 의약품 옵션 1 개와 사용할 수있는 경로가 각각 하나씩있는 텍스트 입력란 만 저장합니다.
줄 14705에서 debug.breeze.js의 번들을 가져 와서 텍스트 파일에 저장할 때 파일은 35+ MB입니다. 이것은이 똑 바른 객체 모델에 대한 많은 양의 데이터처럼 보입니다.
개체만으로 json을 슬림하게 만들 수있는 방법이 있습니까? 그래서 IIS 설정을 변경할 필요가 없습니까?
****************** 바람이
Sample of json that's causing the problem
*********** 서버로 전송하고 수출 JSON 링크**************** 여기 그래프 *************
의 스크린 샷
,210
내 datacontext.saveChanges 코드 ......
이 function saveDictionaryChanges(entity) {
var graph = manager.getEntityGraph(entity, 'drugIndications, ' +
'drugOptions, ' +
'drugOptions.concentrations, ' +
'drugOptions.availableRoutes, ' +
'drugOptions.availableDrugForms, ' +
'drugOptions.availableUnits');
// Filter for changes only
graph = graph.filter(function (entity) {
return entity.entityAspect.entityState.isAddedModifiedOrDeleted();
});
return manager.saveChanges(graph)
.then(saveSucceeded, saveFailed);
function saveSucceeded(result) {
//TODO: Commented out because WIP is on the back burner
//zStorage.save();
logSuccess('Saved Data', result, true);
}
function saveFailed(error) {
var msg = config.appErrorPrefix + 'Save failed: ' +
breeze.saveErrorMessageService.getErrorMessage(error);
error.message = msg;
logError(msg, error);
throw error;
}
}
내 개체 모델은
있다 4 다른 상속 가능한 경로 유형 액체, 흡입, 주사 및 뉴스 영화. 나는 그가 질문을 단축하는데 도움이되는 오직 AvailableSolidRoutes를 포함했다.
public class AvailableRoute {
public int Id { get; set; }
public int DrugOptionId { get; set; }
public int RouteId { get; set; }
public virtual Route Route { get; set; }
}
public class AvailableSolidRoute : AvailableRoute {
public AvailableSolidRoute() { }
}
또한 농도로부터 상속합니다 흡입, 주사 & 국소 농도 목적이있다. 질문을 줄이기 위해 LiquidConcentration 만 포함되었습니다.
public abstract class Concentration {
public int Id { get; set; }
public int DrugOptionId { get; set; }
public DrugOption DrugOption { get; set; }
public decimal Measure{ get; set; }
public int MassUnitId { get; set; }
public virtual Unit MassUnit { get; set; }
public int VolumeUnitId { get; set; }
public virtual Unit VolumeUnit { get; set; }
public int? DrugFormId { get; set; }
public virtual DrugForm DrugForm { get; set; }
public int DisplayOrder { get; set; }
}
public class LiquidConcentration : Concentration {
public LiquidConcentration() {}
}
& 화제
public class DrugOption {
public int Id { get; set; }
public int DrugId { get; set; }
public Drug Drug { get; set; }
public List<AvailableDrugForm> AvailableDrugForms { get; set; }
public List<AvailableRoute> AvailableRoutes{ get; set; }
public List<AvailableUnit> AvailableUnits { get; set; }
public List<Concentration> Concentrations { get; set; }
public string SpecialInstructions { get; set; }
}
public class SolidOption : DrugOption {
public SolidOption() { }
}
약물 고체 옵션 액체, 흡입, 주사 추천 다른 상속 유형이 이전의 모든 클래스와 관련된 루트 클래스 :
public class Drug {
public int Id { get; set; }
public string Name { get; set; }
public string Alias{ get; set; }
public string Directions { get; set; }
public bool DirectionsIsEditable { get; set; }
public string SpecialDirections { get; set; }
public bool SpecialDirectionsIsEditable { get; set; }
public int? DisplayOrder { get; set; }
public IList<DrugIndication> DrugIndications { get; set; }
public IList<DrugOption> DrugOptions { get; set; }
public Drug() { }
}
하나의 엔티티 만 35MB? 다음과 같이 필터링하십시오 :'return entity.entityAspect.entityState! == breeze.EntityState.Unchanged' 그리고 크기를 다시 확인하십시오. –
아니요, 1 개의 약물 옵션이있는 마약과 1 개의 가용 한 루트가 있습니다 .. 그래프는 그래프를 통해 필터링됩니다 = graph.filter (function (entity) { return entity.entityAspect.entityState.isAddedModifiedOrDeleted(); }); – GregL
저장 번들에 실제로 무엇이 들어 있는지 알지 못한다면 말하기가 어렵습니다. 나에게 35MB를주지 마라 :-). 그곳에있는 것이 무엇이고 어떤 것이 큰지 말해주세요. 그 묶음에 실제로 2 ~ 3 개의 엔티티가 있다면 그게 어떻게 커지는지 상상할 수 없기 때문에 (저장하기 전에'graph' 배열에 2 ~ 3 개의 아이템 만 있습니다.) – Ward