gpt4 book ai didi

breeze - 服务器响应和 QuerySucceeded 之间实体属性丢失

转载 作者:行者123 更新时间:2023-12-02 03:42:56 25 4
gpt4 key购买 nike

实体属性“设备”在服务器的 JSON 响应和 QuerySucceeded 回调之间从我的帐户实体中丢失

当我检查我的 JSON 时,我可以在返回的帐户对象上看到设备数组。当我在 QuerySucceeded 方法中放置断点时,data.response Account 对象没有“Devices”属性。

一些额外的信息:

  • 我在 EF Code First 中建立了多对多关系,方法是我的帐户模型上的设备集合和我的设备型号上的帐户。这些也被映射等
  • 我正在从帐户实体扩展设备
  • 即使我不进行“扩展”,仍然没有“设备”属性对象。
  • Account 实体上还有另一个集合,称为报告配置。该实体显示为响应良好(这是一对多)。
  • 这是我第一次使用 CodeFirst 修改数据库。我最初有一个数据库,并使用强大的工具将其转换为 Code First。正因为如此,我可能会遗漏一些导致它无法正确映射的东西,但对我来说没有任何问题....

这是 AccountMap.cs 中的相关部分:

this.HasMany(t => t.Devices)
.WithMany(t => t.Accounts)
.Map(m =>
{
m.ToTable("DeviceAccounts");
m.MapLeftKey("Account_Id");
m.MapRightKey("Device_Id");
});

Account.cs 中的相关部分:

public Account()
{
this.Devices = new List<Device>();
}
public virtual ICollection<Device> Devices { get; set; }

最后是我的查询:

var query = entityQuery.from('Accounts')
.where('id', 'eq', id)
.expand('devices')
.orderBy('givenName, familyName');

enter image description here

对于可能导致此问题的原因有什么想法吗?

最佳答案

除非您公开连接表,否则 Breeze 不支持多对多关系。

在这里找到答案: Many-to-many relations in Breeze

在 Breeze 中还有一个正在进行的支持此功能的建议: https://breezejs.uservoice.com/forums/173093-breeze-feature-suggestions/suggestions/3317477-many-many-relationship-for-ef

要从帐户中获取设备的 observableArray,我必须创建一个 for 循环来遍历 Account.DeviceAccounts 中的每个项目,并将内部设备推送到一个 observableArray。

关于breeze - 服务器响应和 QuerySucceeded 之间实体属性丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18996708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com