问题标签 [breeze-sharp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
118 浏览

breeze - EntityAspect.Delete() 不会在导入后从导航集中删除实体 - Breeze.Sharp

我们正在开发一个移动跨平台应用程序,当设备位于没有网络覆盖的区域时,它使用 Breeze.Sharp 导入和导出操作来持久化数据。

当一个实体应该从 UI 中删除时,我们设置entity.EntityAspect.Delete()并且一切都很好:EntityState 设置为 Deleted 并且实体从导航集(和 UI 列表)中删除。然后,我们通过EntityManager.ExportEntities()将实体导出到文件。当应用程序关闭并重新启动时,我们使用EntityManager.ImportEntities()从文件中导入实体。这就是问题发生的地方。被删除的实体仍然是它被删除的导航集的一部分(它在导航集中,即使它的EntityState在导入后被删除,也可以在UI列表中看到),并且可以迭代和操作以及其他导航集的未删除实体。

我尝试在导入后将已删除实体的状态重置为已删除(没有运气):

此线程上存在相同的问题,但它适用于微风.js,并且似乎没有在最新的 Breeze.Sharp 中得到修复。当有多个实体管理器时,那里提供的解决方案似乎有效,但这不是我们的情况,我们只有一个。我们使用的是 Breeze.Sharp 版本 0.6.0.5。(目前最新)

如果修复将在下一个版本中发布,您能否确认或提供此问题的解决方案或提供信息?

谢谢

0 投票
1 回答
110 浏览

breeze - Breeze Sharp 我无法将我的详细信息添加到数据库中。它会抛出 FetchMetadata 或通过显式更新 KeyProperties

我已经安装了 Breeze sharp 软件包,并创建了一个具有模型 Customer 的示例 Windows 应用程序。

我已经EntityManager为我们的 API 服务创建了,并尝试获取元数据来创建我的实体,但是它抛出了以下错误

EntityType: 'Customer:#BSharp.Models' 上尚未定义 KeyProperties。请通过调用 FetchMetadata 或在为此类型创建 EntityKey 之前显式更新 KeyProperties 来确保此类型的元数据是完整的

你能帮我解决这个问题吗?

0 投票
1 回答
216 浏览

c# - 如何为 Windows 和 Web 客户端配置 Breeze Web API 控制器

我们已经为现有的 Web 客户端应用程序提供了 Breeze Web API 控制器。它运行良好。现在我们需要为 Windows 应用程序再添加一个客户端。我们可以为 Windows 应用程序使用相同的 Breeze 控制器吗?

我已阅读您的微风网站,发现您提供了一个选项,例如

您不必编写服务器两次。而是将相同的核心服务器逻辑包装在两个独立的轻量级控制器集中——一个 Breeze 控制器和一个小型的、集中的 OData 控制器集。

你能解释一下我们如何归档这个过程吗?另外,请提供一个示例应用程序将对我们有所帮助。

0 投票
1 回答
102 浏览

breeze-sharp - 在 BreezseSharp 中,如何将 OAuth 令牌添加到查询的标题中?

我试图弄清楚如何将 OAuth 令牌添加到 Breeze-Sharp 请求中。我正在使用 Microsoft WebAPI,我想使用 OWIN 的 OAuth 令牌来授权我的所有查询请求。我没有看到在哪里或如何更改请求标头。我看到您可以使用 WithParameter 将参数添加到查询中,但我没有看到可以更改标题的位置。我正在寻找这样的东西:

0 投票
0 回答
155 浏览

c# - Breeze.Sharp:EntityManager 无法处理并发的 ExecuteQuery 调用

我在服务器端使用 WebApi 的胖客户端应用程序中使用 Breeze.Sharp。当我在 EntityManager 对象上多次调用 ExecuteQuery 时,我注意到了一个问题。

如果 ExecuteQuery 调用返回的任务没有按照创建它们的顺序完成,那么 EntityManager 将无法更改任何已修改实体的状态。修改后的实体将始终保持未更改状态,从而在 SaveChanges 调用中发送空白响应。

上面的代码非常简单,但是如果我在循环中调用此方法,其中一些调用比其他调用慢,我会遇到所描述的问题。

查看源代码似乎 EntityManager 不是线程安全的。EntityManager 对象上有一个内部布尔属性 IsLoadingEntity,当它通过这些多个 ExecuteQuery 调用时,它保持设置为 True,即使所有任务都完成,这个属性也不会被设置回 false。这导致 SaveChanges 什么也不做。

这听起来很熟悉吗?我们有任何修复还是我做错了什么?

0 投票
1 回答
247 浏览

c# - 使用 OData/BreezeJS 过滤 3 个深层实体

我对 OData、EF 和 BreezeJS 概念很陌生。我现在负责一个已经在 Entity Framework/BreezeJS/Angular 库的帮助下开发的项目。我需要改进它。

在 BreezeJS 生成的 OData 调用中有一些我真的不明白的地方。

我正在尝试做的事情是通过获取法语 ('FR') 的兴趣代码和标签来列出链接到活动中的所有兴趣。基本上这意味着用原始 SQL 编写这个查询:

是的,我知道查询可以更简单,我这样写的原因是,我放置了几个主键/外键约束来帮助实体框架“发现”模型。

首先,这是我的问题所涉及的数据模型的一部分: 问题关注的部分Data Model

这里的主表是CAMPAIGN_INTEREST表。其内容如下:

LK_CAMPAIGN_INTEREST_CODE包含:

LK_CAMPAIGN_INTEREST包含以下内容:

最新的LK_APP_LANGUAGE包含:

现在,我正在尝试通过直接发送 OData URL 来调试我的 BreezeJS 查询。

以下查询仅返回“CAMP01”活动的“Office”值,以“EN”和“FR”两种语言(注意:此 URL 由 BreezeJS 库生成):

现在,我想过滤应用程序语言,所以我写了以下内容:

这将返回所有语言,而不仅仅是“FR”语言。

当我尝试将上面 URL 中的“任何”关键字更改为“全部”时,它什么也不返回。

我不明白的是,当我尝试过滤 VALUE 列(此处显示的第一个 URL)时,它可以工作。如果我尝试过滤 CODE 列,它也可以。唯一不起作用的列是 LANG 列。

您可以在该部分图中看到的是,LK_APP_LANGUAGE 用于多个 LK_* 表中(这就是为什么我在这里放了另一个我没有使用的 LK)。事实上,在应用程序中,每个 LK_ 都被翻译了,这就是我试图在 LANG 列上进行过滤的原因。

如何通过使用 OData URL 过滤条件来实现这一点?

我不会在这里放 C# 和 JS 代码,因为我现在不知道它是否相关。如果您需要,只需发表评论,我将编辑该帖子。

任何帮助将不胜感激!处理这件事我失去了一天。非常感谢!

0 投票
1 回答
2050 浏览

c# - 检测到类型不兼容的二元运算符。找到类型相等的操作数类型 edm.string 和 edm.guid

我使用微风谓词实现过滤器。将 BreezeJs 和 ASP.NET WebAPI(Breeze 服务器端)与实体框架一起使用

谓词如下所示:

当我执行查询时。Breeze 抛出异常并显示以下消息:

检测到类型不兼容的二元运算符。找到类型相等的操作数类型 edm.string 和 edm.guid

$scope.filter.serialNumber 是一个字符串,serialNumber 是一个 GUID 属性

网址如下。

http://localhost:51969/breeze/WarehouseProductTransactions/GetProducts ?$filter=(StatusId ne 3d) and (WarehouseId eq 1d) and (AuthorizedADUserId eq 'bTdbnW8t6Uu4D4KHCoQOhg==') and (SerialNumber eq guid'1b9d065e-eb48-4f3d- 883c-2c841771a3e8')&$orderby=Id&$top=5&$expand=Inventory,AuthorizedADUser&$inlinecount=allpages&)

注意片段:

(序列号 eq guid'1b9d065e-eb48-4f3d-883c-2c841771a3e8')

我的服务器端如下:

我试图弄清楚如何解决这种情况,但不知道。

任何帮助表示赞赏

0 投票
1 回答
135 浏览

breeze - 将服务端的微风实体导出为 json

我正在寻找一种将服务器端的微风实体导出到 json 字符串的方法,微风管理器可以从客户端导入该字符串。我查看了所有微风 API(公共和内部源代码),但我找不到实现这一目标的明显方法。通过在服务器端使用 BreezeSharp(.NET 微风客户端)有可能获得所需的结果,但我想看看这是否可以通过仅使用微风服务器 API 来实现。

0 投票
1 回答
61 浏览

asp.net-web-api2 - 用于快速转换的微风 js 查询语法

我目前正在使用现有的 Breadjs api 开发一个项目,并且在快速进行 IOS 开发的地方,我正在尝试找到 BREW 查询的语法,以便我可以从中创建一个查询生成器。

我假设语法与 OData v4 相同,但我想它有一些我无法想象的细微变化。

我不知道是否有人作为此文档的文档,但将它移植到 swift 会非常有帮助。

编辑:到目前为止我的工作...

where 子句

  • $filter=(字段 eq 'somedata')
  • $expand=fieldName1,fieldName2
  • $select=(查询)
  • $orderby=id desc/asc
  • $顶=2
  • $跳过=18
  • $inlineCount=所有页数/无

其中大部分是基本的 odata 语法,您可以从odata 基本教程中看到。

唯一似乎不受支持的是 $count 和 $search

编辑:它似乎是 OData Microsoft 风格的Microsoft OData

0 投票
1 回答
197 浏览

asp.net-web-api - Breeze.js:where 子句中的与号字符(“&”)引发错误

下面是创建 Breeze 查询的 JavaScript 代码:

当我发送此查询时,我收到此错误:“URI 中指定的查询无效。”

在 Fiddler 中,我可以看到 URI,但似乎没问题: http://localhost:59994/breeze/FastSearch/suppliers ?$filter=substringof(%27%26%27%2CName)%20eq%20true&$orderby=姓名&$top=50&$select=姓名

当我的搜索模式包含“&”字符时,我总是收到此错误。

知道如何解决吗?