Breeze#executeQuery返回空对象
我有Breeze.Sharp应用程序,它与不提供元数据的遗留WebAPI通信 查询似乎执行正确-返回了预期数量的对象,但所有对象均为空。修改查询参数也有效-返回对象的数量按预期更改。我在玩EntityManager.MetadataStore,但没有任何帮助 下面是我目前用来与WebAPI通信的最后一段代码Breeze#executeQuery返回空对象,breeze,breeze-sharp,Breeze,Breeze Sharp,我有Breeze.Sharp应用程序,它与不提供元数据的遗留WebAPI通信 查询似乎执行正确-返回了预期数量的对象,但所有对象均为空。修改查询参数也有效-返回对象的数量按预期更改。我在玩EntityManager.MetadataStore,但没有任何帮助 下面是我目前用来与WebAPI通信的最后一段代码 public class DokumentModelBreeze: BaseEntity { public string id { get; set; } public st
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);
我是否遗漏了什么,或者Breeze不允许在没有元数据的情况下查询WebAPI?
针对测试WebAPI执行的相同代码以及公开的元数据都能很好地工作。您的GetValue和SetValue属性的定义必须如下所示:
public string id
{
get { return GetValue<string>("id"); }
set { SetValue(value); }
}
公共字符串id
{
获取{return GetValue(“id”);}
set{SetValue(value);}
}
这是一种痛苦,我知道,但在我们一位令人敬畏的技术负责人指出这一点后,这为我解决了它:)
public string id
{
get { return GetValue<string>("id"); }
set { SetValue(value); }
}