메타 데이터를 제공하지 않는 레거시 WebAPI와 통신하는 Breeze.Sharp 응용 프로그램이 있습니다.Breeze # executeQuery는 빈 객체를 반환합니다.
쿼리가 제대로 실행 된 것 같습니다. 예상되는 개체 수가 반환되지만 모두 비어 있습니다. 조회 매개 변수 수정 또한 작동합니다. 리턴 된 오브젝트 수는 예상대로 변경됩니다. EntityManager.MetadataStore를 가지고 놀았지만 아무것도 도움이되지 않았습니다.
다음은 현재 WebAPI와 통신하기 위해 사용하고있는 마지막 코드입니다. 마지막 Foreach 루프에서
public class DokumentModelBreeze: BaseEntity
{
public string id { get; set; }
public string numer { get; set; }
public decimal suma { get; set; }
}
...
Configuration.Instance.ProbeAssemblies(typeof(DokumentModelBreeze).Assembly);
var manager = new EntityManager("http://localhost:52357/api/");
manager.DataService.HasServerMetadata = false;
var store = manager.MetadataStore;
store.SetResourceName("dokumenty", typeof(DokumentModelBreeze), true);
store.NamingConvention = new CamelCasePropertiesNamingConvention();
var builder = new EntityTypeBuilder<DokumentModelBreeze>(store);
builder.DataProperty(d => d.id).IsPartOfKey();
using(TextWriter writer = File.CreateText("C:/metadata.txt")) {
store.ExportMetadata(writer);
var query = new EntityQuery<DokumentModelBreeze>("dokumenty");
query = query.WithParameter("nrFirmy", 1).Where(p => p.numer=="123");
var results = await manager.ExecuteQuery<DokumentModelBreeze>(query);
List<DokumentModelBreeze> Dokumenty = new List<DokumentModelBreeze>();
foreach(var item in results)
Dokumenty.Add(item);
모든 항목 유형 DokumentModelBreeze들이지만, 각 부재의 특성은 각각 null 또는 0과 같다.
나는, 파일에 MetadataStore를 저장 한이 아래에 포함되어 있습니다 :
{
"metadataVersion": "1.0.3",
"namingConvention": {
"clientServerNamespaceMap": {},
"name": "camelCaseProperties"
},
"structuralTypes": [
{
"shortName": "BaseEntity",
"namespace": "Breeze.Sharp",
"baseTypeName": "",
"autoGeneratedKeyType": "None"
},
{
"shortName": "DokumentModelBreeze",
"namespace": "BRuNETWPF.ViewModels",
"baseTypeName": "BaseEntity:#Breeze.Sharp",
"autoGeneratedKeyType": "None",
"defaultResourceName": "dokumenty",
"dataProperties": [
{
"name": "id",
"dataType": "String",
"isNullable": false,
"defaultValue": "",
"isPartOfKey": true
},
{
"name": "numer",
"dataType": "String",
"isNullable": false,
"defaultValue": ""
},
{
"name": "suma",
"dataType": "Decimal",
"isNullable": false,
"defaultValue": 0.0
}
]
}
],
"resourceEntityTypeMap": {
"dokumenty": "DokumentModelBreeze:#BRuNETWPF.ViewModels"
}
}
내가 브리즈 # 메타 데이터없이 WebAPI를 조회 할 수 없습니다 여기 혹은 뭔가를 놓치고 있습니까? 메타 데이터가 노출 된 테스트 WebAPI에 대해 동일한 코드가 실행됩니다.