问题标签 [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 投票
1 回答
195 浏览

c# - Asp.Net MVC + Breeze + Angular 可以一起工作吗?

我正在一个基于 Asp.Net MVC + Breeze + Angular 的新项目中工作。

我想为帐户使用预先创建的视图和 MVC 控制器(登录、注销、恢复密码等)。此外,我想使用 Breeze 和 Angular 添加迷你 SPA 页面。

可能吗?

Breeze 实现了它的路由配置文件,它覆盖了 mvc 应用程序的现有路由,所以我不能同时使用它们,要么使用微风路由,要么使用 mvc 路由。

0 投票
1 回答
265 浏览

c# - 无法在 Xamarin 客户端上使用 BreezeSharp 找到元数据资源

我已经设置了一个使用 Breeze 来提供数据的 ASP.Net WebApi 站点。我还有一个使用 BreezeJs 的 Angular 网络客户端,它成功地与 webapi 对话并获取数据。

目前,我正在尝试使用 Breeze# 将 Xamarin 客户端连接到 WebApi,但我无法使其正常工作并出现“无法找到元数据资源”错误。

我曾尝试使用 Breeze# ToDo.Xamarin 示例,但遇到了同样的错误: "Unable to locate metadata resource for: http://localhost:60851/breeze/todos/" 即使 urlhttp://localhost:60851/breeze/todos/Metadata在浏览器中成功运行。

我正在运行提琴手,并且没有尝试从应用程序联系服务器。

我缺少什么让客户端与服务器交谈?

0 投票
2 回答
670 浏览

mvvm-light - BreezeSharp 实体属性与 Xamarin 表单条目绑定

我们正在使用 Xamarin Forms 框架开发移动应用程序(目前仅针对 Android)。我们在 MVVMLight 工具包的帮助下构建了我们的应用程序以利用 MVVM 模式。对于数据管理,我们使用 BreezeSharp(因为我们已经为 Web 客户端实现了 Breeze 友好的服务器)。

我们正在处理的问题是在绑定到 Breeze 实体的属性的 Xamarin Forms Entry 控件中键入时应用程序崩溃。

Xaml 视图中的入口控制:

ViewModel 中的属性(Set() 来自 MVVMLight ViewModelBase):

Breeze CLR 类型中的属性:

在输入字段中仅输入几个字符后,应用程序会因堆栈跟踪而崩溃:

在我看来,许多事件被触发,导致事件堆栈溢出。

绑定到非 Breeze 属性时,条目工作正常。绑定到分离实体时也可以正常工作。

在深入研究 Breeze EntityAspect.cs 代码后,我发现所有这些都来自这个函数:

因此,我使用以下方法禁用了 Breeze 中的引发事件:

这似乎解决了我们的条目绑定问题,但我们不确定这是否会为其他问题打开大门。

这种方法的后果是什么?

这些 EntityPropertyChanged 和 PropertyChanged 事件是由 Breeze 代码使用还是仅用于我们的代码附加到它们上?

或者你看到这个问题的其他方法吗?

更新:后果是:如果我们在 UI 上有多个元素绑定到同一个属性,并且如果我们在一个地方更新该属性,则更改在其他地方不可见。

示例:从 ListView 中选择元素并将所选元素绑定到某些条目字段(在 ListView 之外)。当我们通过该条目字段更新元素时​​,更改在 ListView 上不可见(因为未通知 ListView)。

启用 Breeze PropertyChanged 机制(EntityPropertyChanged 和 ForceEntityPropertyChanged)后,这将开箱即用,但正如我上面提到的,应用程序崩溃存在问题。

我们最终在我们的基础实体(继承自 Breeze BaseEntity 的实体)中实现了 OnPropertyChanged 和 RaisePropertyChanged 方法。这种技术类似于 ObservableObject 的 MVVMLight 实现。

此代码工作正常(没有应用程序崩溃):

我们还可以在需要时调用 RaisePropertyChanged:

0 投票
1 回答
302 浏览

javascript - Angular 和 Breeze 编辑 Date 对象

我有一个 AngularJS 应用程序,我想在其中编辑由 ASP Web API 通过 BreezeJS 公开的 Date 对象。当我尝试在 HTML 表单中编辑此字段时,它并不能正常工作。它似乎编辑了对象的一部分,或者根本不绑定到日期输入类型。

我想知道用 BreezeJS 编辑 HTML 表单中的日期字段的最佳方法是什么。我找不到任何有关如何以适当方式解决此问题的资源。

我自己的猜测是:

  1. 使用基于原始日期的额外字段扩展 Breeze 实体,并使用 getter/setter。
  2. 不在 WebAPI 中使用日期字段,但感觉不对。

代码

在我的 Angular 控制器中,我通过存储库模式从 Breeze 获取对象:

之后 vm.session 被 Breeze 对象填充,如下所示:

现在在我的 HTML 表单中,我像这样绑定:

如果我在输入字段中使用“文本”类型而不是“日期”类型,则会将此日期显示为“Sun Oct 12 2014 02:00:00 GMT+0200 (Romance Daylight Time)” 。

ng-model 字段的大小写是正确的,因为我使用它来创建 camelCase 字段:

所以这相当简单......我会尽快制作一个 JSFiddle 或 Plunker

0 投票
2 回答
1273 浏览

c# - Breeze Sharp - 扩展不适用于 lambda 表达式

当我尝试通过 lambda 扩展导航属性时,如下所示:

我的查询失败了

这是一条失败消息

内部异常

内部异常

内部异常消息:

表达式 'x => x.Dealers' 不是导航路径的有效表达式。lambda 表达式主体内唯一支持的操作是 MemberAccess 和 TypeAs。表达式必须至少包含一个 MemberAccess,并且不能以 TypeAs 结尾。

然而,当我尝试通过字符串参数进行扩展时:

一切似乎都正常工作。

我的“区域”微风客户端实体:

我的经销商导航实体:

我最近的尝试是通过“ForeignKey”数据注释使外键关系明确,但产生的错误仍然是一样的。

我正在使用微风锐利 v0.6.0.3。

更新1:这不是与上面完全相同的查询,而是相同的结果。只是我一直在逐步完成的 Breeze.Sharp 源代码的屏幕截图。大图在这里

在此处输入图像描述

0 投票
0 回答
518 浏览

angularjs - Breeze 复杂类型数组验证 - 问题

我正在尝试对复杂类型数组中存在的数据属性进行验证。下面显示的是示例微风模式和使用的复杂类型。

微风架构:

复杂类型:(Address.json)

在这种情况下,示例数据对象将如下所示

}

如果我更改地址,将触发与地址数据属性关联的验证器。

我的问题是:我正在更改第一个对象的地址(mailingAddress[0]),微风怎么知道我已经更改了第一个地址对象?有什么办法可以获取更改后的数组索引?

我已经propertyName在上下文中检查过现在,但它没有确切的路径。

  • 期待 :mailingAddress[0].address
  • 实际的 :mailingAddress.address

由于上述问题,我无法正确进行自定义验证。请为此问题提供解决方案。

谢谢, 迪内什

0 投票
0 回答
60 浏览

javascript - 在一个 saveBundle 中删除和修改多对多表时,saveChanges 失败

我正在尝试删除具有唯一索引的多对多表中的记录。因此,如果将组件添加到列表中,则订单必须增加一,否则后端将不允许将其保存到数据库中。

当我删除列表中的这些组件之一时,我的问题就出现了,我还修改了任何组件,并且 Order 高于它,以使这些组件的顺序没有间隙。

设想:

多对多表填充了 5 个具有唯一索引的组件,正如 componentId 的唯一一样。组件 entityAspect 设置为已删除(尚未进行保存)

我删除了第三个组件,因此组件 4 和 5 的索引将分别减少 1,因此新索引将是 1234 而不是 1245。这是 JS 完成的,一旦完成,我就会调用我的服务来保存所有更改.

我也试图覆盖saveMap。

不过,这似乎并没有改变微风的执行方式。

0 投票
1 回答
106 浏览

asp.net-mvc-4 - (0x800a138f) 将 BreezeJS 添加到 Durandal 项目后 IE8 中未处理的异常

我希望在 .NET 4.0 上具有 Breeze/Durandal 2 经验的人能够帮助我解决这个错误,因为我对这个组合还很陌生。

我一直在研究 Durandal 2/KO/Require SPA 项目,该项目最近编译良好并在我的 IIS7 上运行。我需要这个应用程序与 IE8 兼容,所以我导入了 shim 和 sham js 库,如下所示:

我还需要能够访问数据库中的数据,所以我尝试将 BreezeJS 添加到组合中。根据 Breeze 的文档,为了使其工作,我必须使用空模板将 VS 中的项目重新制作为 ASP.NET MVC4 项目。之后,我使用 NuGet 导入了 Breeze 文件:

然后我将我预先存在的视图、控制器、库、css 等添加到新创建的项目中。现在,当我使用 IE8 编译时,出现以下错误。Firefox 或 Chrome 不会出现此错误:

0x800a138f - Microsoft JScript 运行时错误:“路由”为空或不是对象

我认为这可能是与 JQuery 的兼容性问题,所以我在那里尝试了不同的版本。我确保我的 DocType 设置为:

并且我有以下元标记:

但是我怀疑其中任何一个都会导致 IE8 和 Durandal 出现问题。有没有其他人遇到过和我类似的问题?我遇到这个错误是因为我没有在 MVC4 端配置一些东西吗?

任何建议将不胜感激。

谢谢

0 投票
0 回答
274 浏览

c# - Breeze.Sharp MVVM 试图从数据库中获取结果 - 错误

我正在使用 Breeze.Sharp 将实体从数据库中取出。尝试检索“结果”时出现此错误:

找不到 CLR 类型的默认资源名称: AHS.Apps.Call.WPF.Entities.CallActionCategory

我已经逐步浏览了 Breeze 代码,但它几乎没有文档。这是我的方法:

0 投票
0 回答
34 浏览

breeze-sharp - 返回 ComplexObject 给出错误:“存在此名称的类型,但不是 Breeze.Sharp.EntityType”

我有以下 BreezeController:

它公开了一个函数“RegrasAProcessar”,该函数应该调用在 entityframework edmx 文件中公开的 sqlserver 函数。正如预期的那样,sqlserver 函数“GetRegrasAProcessar”返回一个我想发回给客户端的 complexType。客户端依次声明了以下代码:

期望接收类 RegraInfo 作为 complexObject。问题是当我用这段代码调用服务器函数时:

给出错误消息:“存在此名称的类型,但不是 Breeze.Sharp.EntityType”。这种方法有什么问题?我应该改变什么吗?我将不胜感激有关此主题的一些帮助。提前谢谢了。