Breejs:导航属性未添加到实体中

2023-12-03

我已经配置了我的 WebAPI ODATA 服务(使用 5.0.0-rc1 来支持 $expand 和 $select),一切似乎都工作正常,但导航属性除外。

元数据确实包含我的导航属性(Mandate 上的 OpenPositions):

enter image description here

然后我的微风查询如下:

function search() {       
    var query =  breeze.EntityQuery.from("Mandates").expand("OpenPositions").inlineCount();

    return manager.executeQuery(query.using(service)).then(function (result) {
        logger.info(result);
    }).fail(function (error) {
        logger.error(error);
    });
}

WebAPI 控制器:

[Queryable(AllowedQueryOptions= AllowedQueryOptions.All)]
    public override IQueryable<Mandate> Get()
    {
          return new List<Mandate>() { new Mandate() { 
            Id = 1, 
            PolicyNumber = "350000000",
            OpenPositions = new List<OpenPosition>(){ 
                new OpenPosition(){ Id = 1, Amount = 2300, Mandate_Id = 1 },
                new OpenPosition(){ Id = 2, Amount = 2100, Mandate_Id = 1 }
            }},
            new Mandate() { 
                Id = 2, 
                PolicyNumber = "240000000" ,
                OpenPositions = new List<OpenPosition>(){ 
                new OpenPosition(){ Id = 3, Amount = 2500, Mandate_Id = 2 },
                new OpenPosition(){ Id = 2, Amount = 2100,  Mandate_Id = 2}
            }

            } }.AsQueryable<Mandate>();
    }

没什么了不起的。但是,尽管我的 Mandate 实体返回到结果集中,但它们没有 OpenPositions 集合。

作为测试,如果我添加.select("OpenPositions")到我的微风查询,然后我得到一个错误:

unable to locate property: OpenPositions on entityType: Mandate:#WebAPINoBreeze.Models

为什么会这样?

[EDIT]query.entityType.NavigationProperties 是一个空数组,所以这可能是一个线索...微风似乎无法从元数据中构建 navigationproperties。

[EDIT]

添加了外键。问题仍然存在:

 public class Mandate
{
    public int Id { get; set; }
    public string PolicyNumber { get; set; }
    public EStatus Status { get; set; }
    public virtual  List<OpenPosition> OpenPositions { get; set; }
}

public class OpenPosition
{
    public int Id { get; set; }
    public decimal Amount { get; set; }
    [ForeignKey("Mandate")]
    public int Mandate_Id { get; set; }
}

**[编辑] **

由于某些原因, [ForeignKey("Mandate")] 属性在编译时被删除(我认为这是因为生成了模型类。我找到了一种解决方法,元数据现在包含 OpenPositions 中 Mandate 的外键 MandateId :

enter image description here


您必须定义外键,因为 Breeze 关联需要 FK。http://www.breezejs.com/documentation/navigation-properties

[EDIT]

您的双向关联应如下所示:

 public class Mandate
{
    public int Id { get; set; }
    public string PolicyNumber { get; set; }

    public virtual  ICollection<OpenPosition> OpenPositions { get; set; }
}

public class OpenPosition {
    public int Id { get; set; }
    public decimal Amount { get; set; }

    public int MandateId { get; set; }
    public Mandate Mandate {get; set; }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Breejs:导航属性未添加到实体中 的相关文章

随机推荐

  • 在引导输入字段中放置清除按钮

    我试图在输入字段内 搜索图标之前的右侧放置一个清除按钮 但它不起作用 x 显示在输入字段的前面 我使用绝对定位 right 0 和 top 4px 您可以在这里查看我的示例 http www bootply com YUwdJ5Kvx6 一
  • Delphi Windows 服务设计

    Delphi Windows 服务设计 我从未创建过 Windows 服务 但一直在阅读我发现的所有内容 我遇到的所有文章或示例在实现上都非常基础 并且范围有限 还没有看到任何超出此范围或解决特定场景的内容 所以 我已经掌握了我可能会找到的
  • jQuery 的“uploadProgress”未在“$.ajax”中触发

    我是 jQuery 新手 现在正在处理文件上传 我想在每次上传图像时添加一些进度条 我用的是uploadProgress在 jQuery 中 但它似乎不起作用 这是我的代码 form on submit function e var fil
  • Progress 元素内的 html 文本

    您好 有人可以帮我处理这个进度 html 元素吗 我需要能够在进度的右侧放置一个文本值 并根据进度是否减少文本来配合该元素 progress webkit appearance none progress webkit progress b
  • 在 OleDbCommand 中使用“... where Column like ...”不起作用

    我正在使用 C 从 Access 我认为是 2003 或 2007 数据库中选择某些内容 但它没有选择任何内容 我在 Access 本身中尝试了 SQL 语法 它似乎工作正常 我对 C 和 Access 相当陌生 到目前为止我所拥有的 Ol
  • Jquery 从脚本标签获取文本时出现问题?

    我有这个小 HTML 文档
  • 在 Windows 10 中批量运行 VBS 脚本时解压缩文件错误

    运行VBS时解压码在 Win 10 中执行批处理 出现以下错误 鉴于其他人之前曾报告过它可以工作 这可能是什么原因 更改目标目录或显式设置它们不会影响该错误 echo off setlocal enabledelayedexpansion
  • python:直接编辑ISO文件

    是否可以获取 ISO 文件并直接编辑其中的文件 即不解压 更改文件并重新打包 1 可以用Python来做吗 我该怎么做呢 您可以用于列出和提取 我测试了第一个 https github com barneygale iso9660 blob
  • 为 Sklearn 重塑数据

    我有一个颜色列表 initialColors u black u black u black u white u white u white u powderblue u whitesmoke u black u cornflowerblu
  • 角度 $watch |从函数返回项目

    我很想知道为什么我总是必须这样做 scope watch function return scope someData function value console log value 为了让 Angular 真正观察数据 为什么我必须这样
  • Web 配置文件中的 Windows 模拟代码错误

    我在 Web 配置文件中声明了以下部分以允许模拟 我已将该文件夹共享给另一台计算机上的网络内的公共访问
  • 使用 *args、**kwargs 和可选/默认参数调用 Python 函数

    在Python中我可以定义一个函数如下 def func kw1 None kw2 None kwargs 在这种情况下 我可以打电话func as func kw1 3 kw2 4 who knows if this will be us
  • Twitter 未捕获类型错误:未定义不是函数

    我已将 Twitter 小部件使用中遇到的错误范围缩小到事件绑定 twttr events bind tweet function event addShared or twttr events bind tweet addShared 似
  • 将 IE 浏览器与 Visual Basic 结合使用

    正在努力寻找解决这个问题的方法 从 Visual Basic 更具体地说是 Excel 中的 VBA 中 我可以使用以下命令按标题调用 Internet Explorer 窗口 AppActivate My Page Title Windo
  • vscode 扩展 - 如何记录击键

    我正在做用户测试vscode extension 对于某些大学项目 我需要获取文本编辑器中按下的按键的日志 我尝试过onDidChangeTextDocument 但这不会捕获不修改文档的击键 例如 Ctrl 或 Alt 我还尝试向活动文本
  • 使用 Chart.jscanvases 将 HTML 内容导出为 PDF

    我有一个 HTML 页面 其中包含由 Chart js 生成的大约 10 个图表 因此这些是画布元素 我希望能够将页面内容导出到 PDF 文件中 我尝试过使用jsPDF的 fromHTML函数 但它似乎不支持导出画布内容 要么是我做错了 我
  • 使用 Google Apps 脚本插入 YouTube 顶级评论

    我正在尝试使用 Google Apps 脚本创建一个程序 该程序会在某个 YouTube 频道上传时插入评论 我已经能够从频道获取最新的 YouTube 视频 ID 但是当我尝试插入评论时 它会抛出错误 解析错误 第 19 行 文件 代码
  • AngularFire2:使用 RxJS .map() 在 FirebaseListObservables 上执行“连接”

    正如另一个问题所述 我正在开发一个使用 Firebase 作为后端的 Ionic 2 应用程序 我有类别 我有产品 产品属于类别 由于它是 n 到 m 的关系 因此产品和类别存储在 firebase 中的单独节点中 我将数据结构化如下 Fi
  • ASP.net MVC - 用于 POST 操作的单独 ViewModel

    在我的 MVC 应用程序中 我有一个与此类似的视图模型 public class ComplexViewModel public ComplexDetailsViewModel Details1 get set public Complex
  • Breejs:导航属性未添加到实体中

    我已经配置了我的 WebAPI ODATA 服务 使用 5 0 0 rc1 来支持 expand 和 select 一切似乎都工作正常 但导航属性除外 元数据确实包含我的导航属性 Mandate 上的 OpenPositions 然后我的微