问题
我可以看到6个下拉列表。其中每个都由一个Web API调用填充。我想要
从远程服务器填充查询后,使用breeze在本地运行查询
当数据调用针对服务器时,代码运行良好。问题是在尝试查询本地缓存时。我从未收到任何返回的结果。我的方法有缺陷还是我做错了什么
服务器端
视图模型
WebAPI[单一样本方法]
viewmodel.js
Viewmodel.html
<select class="dropdown" data-bind="options: KO1, optionsText: 'o
考虑以下代码:
function getPersonById(personId, type) {
var p1 = new breeze.Predicate("Id", "==", personId);
var p2 = new breeze.Predicate("Type", "==", type);
var query = breeze.EntityQuery.from("Contacts").where(p1.and(p2))
if (!manager.
我可以从服务器(使用EF)在breeze中执行查询,该查询返回boostrap数据负载,因此:
em.executeQuery(_lookupsQuery).then(function (data) {
_lookups = data.results;
console.log(_lookups[0].currentUserId);
这将返回作为guid的currentUserId。然后,我使用本地存储存储em,以便以后在本地查询:
_lookups = [{
currentUserId: em
我开始使用Breeze.js和ASP MVC+WebApi控制器进行开发。我担心的是安全问题,因为我们都应该担心黑客的可能性。现在我确实找到了BeforeSaveEntity截取之前的,它似乎正是我想要在服务器端使用的。我设法在服务器端获得了我想要的安全性,但是在客户端如何处理它呢?在我使用AngularJS的情况下,我应该捕获输出并如何处理它?让我向您展示我在服务器端使用的一些代码示例:
public class ConferenceContextProvider : EFContextPro
在服务器端的breeze中,是否有任何方法可以在BeforeSaveEntity(或保存之前的任何其他地方)中获取实体导航属性的“当前”值?我所说的“当前”是指数据库中存在的内容,以及合并的任何传入更改。这不是为了验证,而是基于父字段和子字段计算父属性的值(我不希望在客户端使用该值)
比如说,
public class Parent {
public ICollection<Child> Children{ get; set; }
}
我想他们还不在这个背景下。我所能做的就是从
我想我发现了一只虫子
我现在做的是:
我创建一个新实体并将该实体添加到管理器中
var createConexion = function (origen, destino) {
var metadataStore = manager.metadataStore;
var conexionType = metadataStore.getEntityType("ConexionPalanca");
var newConexion = conexionType.createE
我现在正努力让它工作好几个小时。我尝试了这些例子并阅读了文档,但我就是想不出来
我想用名称字段从数据库中查询不同的值。
我认为这应该行得通,但行不通。找不到该方法
[HttpGet]
public IQueryable<MvlOP> MvlOpsPerson(long mvlId)
{
System.Data.Entity.Infrastructure.DbQuery<MvlOP> query = ContextProvider.Conte
我试着深入研究这个物体并查看文档,但没有发现任何东西。我已经创建了一个实体,需要手动分配一些属性。我在对象上看到\u backingStore和entityAspect。。。我知道属性名,但不知道如何通过breeze实体设置它们
如果有关系,我将创建一个新对象,然后从另一个对象复制属性以便于克隆
function createDocument() {
var manager = datacontext.manager;
var ds = datacontext.serviceNa
我知道你可以调用这个函数来本地查询,如果可能的话,也可以远程查询。有没有办法判断结果来自本地还是远程?我记得我读过一些关于它的东西,但是再也找不到了
manager.fetchEntityByKey('Employee', employeeID, true)
.then(function(data) {
employee(data.entity);
});
对承诺结果使用“fromCache”布尔属性
manager.fetchEntity
我需要对Breeze.WebApi.ContextProvider进行子类化,但它使用的EntityInfo具有内部构造函数:(
是否有计划公开EntityInfo类的所有成员
public class EntityInfo {
internal EntityInfo() {
}
public Object Entity { get; internal set; }
public EntityState EntityState { get; internal
我有一个旧的SL4/ria应用程序,我想用breeze来取代它。我有一个关于内存使用和缓存的问题。我的应用程序加载作业列表(一个典型用户可以访问大约1000个作业)。此外,还有相当多的查找实体类型。我想确保这些都在客户端缓存良好,但每个会话都会更新。当用户打开一个作业时,它会加载更多的相关实体(200-800个其他实体),这些实体构成作业的多个矩阵样式视图。用户可以查看作业列表,或导航到一次查看一个作业
我觉得我应该关注内存管理,尤其是不知道浏览器如何处理这个问题。最初我觉得这应该是一个Enti
我已经四处寻找答案,但到目前为止我还没有找到答案。我想做的是在一个特定的视图模型中有一个事件处理程序,它监听Breeze添加或删除的实体,以便视图模型可以对它正在管理的阵列采取适当的操作。是否存在这样的事件
我的Jobs视图有一个Jobs视图模型,该模型除其他属性外,还包含Job实体的ko.observatarray,以及我的NewJob视图的NewJob视图模型。两个视图模型共享相同的数据服务。我想简单地使用NewJob视图模型中的DataService将一个新的作业实体插入到Breeze中,
我正在尝试将breeze.js集成到我的SPA中。
使用数据库中提交的实体结构非常简单。
当我需要处理特殊情况时,我遇到了一个问题。我的情况如下:
我需要获取我的实体列表,在第一次仅为显示模式(原始数据存在于外部源中)从外部源填充实体时,当我看到数据时,我可以选择要批准的实体,然后我将实体保存在我的数据库中
你知道用breeze自动管理这个吗
提前感谢…查看微风拉链中的NoDB示例 自动在这里是一个非常离谱的术语。。。创建一个拦截save调用的数据层,并从那里“手动”设置它。没有什么是自动的,我
我没有访问OData提供者的权限,只有一个简单的RESTAPI和json,我需要在本地(移动设备websql上)将数据存储在反映后端模型的不同表中。在Edmunds示例之后,我从RESTAPI获得了实体和关系。如何从本地存储的数据使其以相同的方式工作。我想从本地数据库获取数据并重新创建我的实体,如有任何建议,将不胜感激 通过RESTAPI查询数据后,只需将EntityManager导出到本地存储。像这样的
var changesExport = myEntityManager.expo
我有一个叫做DeviceAccount的模型。它是一个连接表,允许我创建多对多关系
我有一个函数,通过给它一个帐户和一个要加入的设备来创建一个新的DeviceAccount。请看这里:
var createDeviceAccount = function (account, device) {
var initialValues = {
account: account,
device: device
};
我需要在将结果返回到客户端之前,优化服务器上的Breeze controller IQueryable的结果
客户端将向IQueryable资源发出投影查询;客户端查询可能包括where子句和ORDERBY子句
在对数据库执行查询之后(使用实体框架),但在查询结果返回到客户端之前,我想将结果转换为xml或csv格式
由于技术原因,我无法在客户端上执行此转换
事实上,我怀疑我甚至可能无法将查询结果返回给客户端,除了(字符串)url。另外,这个url可能指向一个MVC操作,该操作返回一个FileRe
标签: Breeze
single-page-applicationhottowel
我正在开发一个单页应用程序使用热毛巾模板,使用微风…我遇到了一个特殊的问题,我无法找出内部工作,导致它
我有一个programs表,programs表有一个响应外键,因此程序的结构是:
Id, ResponseID, Name and Date
页面上有名字和日期,外文来自RouteData。
对于Programmes表中的一个响应,我只想在Programmes上节省
所以,当用户来到这个页面时,它会检查programs表,如果它有一个特定响应Id的条目,如果有,它将进入Edit case,如
Breeze服务器-对于Nuget中的Web API 2版本1.4.8,安装Microsoft.Data.OData version=5.6.1,但参考版本5.6.0
请参见下面的错误:
元数据查询失败:*;无法加载文件或程序集“Microsoft.Data.OData,版本=5.6.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。定位的程序集清单定义与程序集引用不匹配。(来自HRESULT:0x8013100的异常)确保更正正确的程序集版本
我将breezejs与entity framework 5模型一起使用。该模型是老式的edmx/objectcontext样式,而不是较新的dbcontext/poco样式
该模型与一些wcf ria服务域服务共享,因此我目前无法切换到entity framework 6或poco风格的entity framework
在使用wcf ria服务时,如果您希望向实体添加实体框架生成的属性以外的属性,则可以创建一个分部类,定义该属性并使用datamember属性对其进行注释。Wcf ria serv
我正在尝试在beforeSaveEntity(或beforeSaveEntity)中编写一些自定义验证,需要验证当前登录的用户是否是正在保存的字段的所有者。我遇到的问题是如何访问当前用户
我为控制器分配了一个授权属性,用于验证用户令牌等,并将授权用户存储在请求.Properties中,但是我无法访问HttpRequestMessage中的before saveEntities。将当前用户的userID传递到这些函数中是否有最佳实践?最简单的方法是为ContextProvider子类提供一个属性来
Breeze是否可以访问没有“BreezeController”也不支持OData的第三方API?“BreezeController”只是一个.NET属性,它帮助.NET WebApi通过OData“语法”提供查询过滤和排序支持,并为实体图和类型标识提供json序列化支持。类型标识非常重要,这样breeze就可以跟踪entityManager中的实体,合并查询结果并更新关系属性。OData本身从来都不是必需的
如果您不希望客户端能够向服务器添加过滤和排序指令,那么您可以编写自己的属性,只提供js
当查询执行失败时(例如保存时违反数据库约束),我可以在控制台中看到
应为空:[]
以下是示例(您可以看到控制台中的Should应为空:[]):
我对Breeze和Q是新手,所以我的问题是:我应该忽略这个吗?还是我做错了什么?或者它可能只是一个报告的bug?这是一个完全不可能的结果。在过去的两个小时里,我遇到了同样的错误,我非常困惑。我最后调试到breeze.debug.js,发现我试图保存的日期无效。一旦我纠正了日期问题(将所有内容转换为UTC),则应为空:[]消息消失。无论如何,我可以在第3
我在Web API中遇到了奇怪的行为。如果我用[BreezeController]装饰,那么元数据()中的断点不会被击中。如果我删除[BreezeController],它会命中断点,但显然会失败,因为该方法不存在。我正在使用EF6 alpha 2。。。一个问题
有什么想法吗?下面是API控制器的代码示例
谢谢,
特拉维斯
namespace Mosaic.Bio.WebApi.Controllers
{
公共类MosaicBreezeContextProvider:EFContextProvi
我使用asp.NETMVC和Durandal模板。我这里的问题与Durandal中集成的Breeze的使用有关。我需要检测任何实体状态更改。我在StackOverflow上找到了一个答案,这里讨论了这个问题:
建议的解决方案在大多数情况下都有效,我的意思是我们可以订阅entityChanged
它在以下情况下工作:
已修改现有实体
已修改的现有实体被取消(拒绝更改)
保存现有实体(保存更改)
将生成一个添加的实体
已取消添加的实体(已更改)
在上述所有情况下,由于SO post中建议的解决方
缓存中有一个实体,则该实体具有前20名形式的相关实体。
现在,用户操作可以更新服务器上的前20名,因此我希望重新下载整个实体。服务器发送前20名的正确数据,但在Breeze中,我最终得到了前40名。。。我不知道如何避免这种行为
谢谢你的提示
更新:我不使用ODataWebAPI和iqueryable,因为它为我的应用程序的客户端提供了太多的功能。所以我不想使用EntityQuery.fromEntityKey,它似乎是我想要的。我更愿意继续使用“普通”查询,并在其中添加一个参数
更新2:为了更清
我有一个复杂的数据模型,其中我需要有指向不同记录的同一个表的两个外键。在我的示例中,我有一个客户机表,我试图跟踪哪些员工记得创建了记录还是修改了记录。我的对象设置如下:
using System;
using System.Collections.Generic;
public partial class shgt_WfClient
{
public int wfClientId { get; set; }
public string SearchName { get; set
我的EDM中有两个实体,应用程序和地址非常类似于以下内容:
class Application
{
ICollection<Address> Addresses { get; set; }
}
class Address { }
不幸的是,我得到一个运行时异常,它说:“无法获取属性“name”的值:对象为null或未定义””
我将异常追溯到breeze.debug中的checkForDups函数。js@9393-9404(v1.2.8):
碰巧,我的实体处于一对多单向关系
我正在对标准RPC样式的WebAPI使用Breeze。我已经用[BreezeController]属性装饰了控制器。我已经在客户机上为WebAPI操作返回的实体定义了实体元数据。我的Breeze数据服务设置如下:
var dataService = new breeze.DataService({
serviceName: "http://localhost/api/PartReceiptPurchaseOrders",
hasServerMetadata: false
});
我在看Breeze.js,并对将其用于我们在生产中提供的服务感兴趣。服务已在运行,无法更改
我的问题是,Breeze.js是否可以在保存数据时进行PUT调用?如果是这样的话,有没有任何例子可以说明这一点?我们正在为此提供更多文档,请继续关注 我们正在为此提供更多文档,请继续关注 这是否意味着功能存在,但只需要记录?或者这是一个尚未交付的功能?这是否意味着该功能存在,但只需要记录?还是这一功能尚未交付?
我在服务器上删除了实体,但在客户端上没有修改该实体
从V1.3.3开始,现在可以在服务器上重写BeforeSaveEntities()时修改已更改实体的映射。如果我像这样标记要删除的实体
saveMap.Add(someEntity.GetType(),new List(){CreateEntityInfo(someEntity,EntityState.Deleted)})
someEntity将从数据库中删除,但由于在客户端上,它在调用saveChanges时未更改,因此在saveChange
我在两个表(Entity1和Entity2)和一个连接表(JunctionEntity)之间有一个多对多关系。
在Breeze客户端中,我想:
创建Entity1、e1类型的对象
将e1链接到一个或多个已存在的Entity2类型的对象。为此,我创建了JunctionEntity的实例j1和j2
保存更改
为此,我使用manager.createEntity创建e1,并使用manager.createEntity创建j1和j2。我只是在这些对象中设置了属性:Entity1Id和Entity2Id
我是breeze的初学者,我想将其集成到ASP.NETMVC4项目中
我也有同样的问题
但是这篇文章并没有回答这个问题,我希望这次我们能做到
问题是我不必使用实体框架,也不知道如何替换控制器中SaveChanges方法中的ContextProvider
[HttpPost]
public SaveResult SaveChanges (JObject saveBundle) {
return ContextProvider.SaveChanges (saveBundle);
}
我还尝试使用
我尝试了那个项目,它看起来很棒。。。但我不能运行它
我已经启动了mongodb和express服务器,如果我浏览到http://my-server:3000/breeze/zza/Products,我得到了产品列表,因此路由和db连接都很好
但是如果我浏览到http://my-server:3000我有一辆404。似乎没有重定向到index.html
如果我浏览到http://my-server:3000/breeze/zza/metadata,然后是代码:
fs.existsSync(filn
我在这里举了一个例子:
我已经开始将实体框架分解成它自己的库(.Data.Ef)
我注意到,当我将DBContext的名称空间更改为与实体/模型不完全匹配的名称空间时,服务器开始抛出406个“不可接受”错误
这是有意的吗?是。如果请求与类的全名不匹配,则模型绑定无法工作。您还可以要求它查询或保存Foo类
此示例用于制作EntityManager的副本:
function createManager() {
// same configuration; no entities in cache.
var manager = masterManager.createEmptyCopy();
// ... copy in some entities (e.g.,picklists) from masterManager
return manager;
}
我不确定我应该
我下载了一个Breeze示例,在VisualStudio中打开它,按F5在debug下运行它(或者按ctrl-F5而不进行调试),但找不到IE报告“请求的URL:/Views/Home/Index.cshtml”
如果我通过“project | Properties | Web”将项目“Start action”设置为“Specific page”,问题就会消失。我可以将页面名称留空;只要点击那个单选按钮
你为什么不为我们这样做,这样就没有人会遭受这种经历呢?我很同情自己曾多次经历过这种令人不安
试用Breeze 1.3.1,我们遇到了一个问题。尝试加载元数据时,出现以下错误:
“错误:api/securitychart/Metadata的元数据导入失败;无法处理返回的元数据:无法找到名称为:Vehicle:#Project.Model.Entities的“类型”
为了澄清,实体“Vehicle”是其他两个实体“Motorbike”和“Car”继承的基本类型
我们仔细研究了Breeze的代码,发现从ContextProvider.Metadata()方法返回的JSON按以下顺序返回ent
我正在使用Papa的课程CCJS代码调查Breeze.js和SPA。使用这段代码,我试图管理来自服务器的传统信息,但这些信息不是来自EntityFramework的元数据中包含的实体
因此,我创建了一个名为Esto的NO-DB类和一个类似查找的服务器方法:
[HttpGet]
public object Informacion()
{
var a = new Esto(....);
var b = new Esto(.....);
var
对于我的一个实体,我看到组返回未定义,因此对组抛出错误。_fixupKey()
在我看来,km.entityTypeName存储实体的短名称,而em.(u entityGroupMap存储实体与名称空间的连接名称
有人知道这是不是breezejs的臭虫吗?还是我的模型中有什么错误导致了这个不匹配的密钥?这是我的自定义breeze数据服务适配器实现中的一个问题。谢谢你和我一起看 Tim,因为我们无法在测试套件中重现它,您能提供重现该问题的小型解决方案吗?这可能与模型中的某些特性有关。请把复印件寄到
在具有[NotMapped]属性的模型类中,我有一个集合属性。我正在使用breeze查询(breeze控制器中的方法)来获取相同实体的记录。我已经在自定义实体构造函数中初始化了not mapped属性,并注册了该构造函数。
但是breeze查询总是给出一个异常,表示“undefined”不是一个函数。即使我跳过初始化构造函数中的not mapped属性,错误也始终存在。之所以发生这种情况,是因为模型类包含自己类型的集合属性。添加了一个新的模型类,并将其集合作为原始模型类的属性公开。感谢您的更新,
我们有一个breeze客户机解决方案,其中显示了父实体及其子实体的列表。我们对一些子实体进行硬删除。现在,当用户执行删除操作时,没有问题,但是当其他人执行删除操作时,似乎无法使已加载到缓存中的子项无效。我们对父对象执行一个新的查询并扩展到子对象,但是breeze附加了它已经听说过的所有其他子对象,即使数据库没有返回它们
我的问题:breeze难道不应该意识到我们正在通过expand加载,从而在从db加载结果之前从缓存中完全删除所有子项吗?如果不是这样的话,我们还能如何做到这一点
谢谢这是一个有效
标签: Breeze
single-page-applicationhottowel
在SPA中,我们如何使用BreezeJS在保存回数据库之前将数据保存在客户端缓存上。我正在处理这个HotTower模板,并尝试一个简单的计算器应用程序,我想使用缓存计算结果,并将其保存到仅缓存(客户端浏览器),我应该能够查询结果。(我已经使用过这种类型的应用程序,但问题是它会直接将更改保存到数据库中,并相应地更新视图)不清楚您是否有我们可以解决的特定问题
要全面了解如何脱机管理更改,您可以观看John Papa的Pluralsight课程,尤其是“使用本地存储保存状态”模块。是的,我正在看Bre
我正在着手一个需要在线/离线移动同步的新项目。我要试试微风
web 2 API上的EF6 oDATA似乎存在一些问题(与批处理事务和保存订单有关)
据我所知,至少在某种程度上,EF7 Beta中已经解决了这些问题
Breeze与EF7一起开箱即用吗
如果不是的话,可以让它玩得很好吗?如何(链接OK)
EF7真的解决了WebAPI2中批处理事务和保存订单的问题吗
对于oData4的edm问题,是否有切实可行的解决方案
我们肯定会支持EF7,但不太可能在EF7推出测试版之前发布任何内容。至于EF6
但我想在返回任何可查询结果之前将附加参数传递给控制器操作:
[AcceptVerbs("GET")]
public IQueryable<Entity> EntityList(string actionParam) {
//here goes logic that depends on actionParam
//and returns IQueryable<Entity>
}
我已尝试将路线设置为:
并通过在from节中应用它来发送actionParam
但编
通过创建自定义元数据定义并将其添加到breeze实体管理器,我成功地将breeze连接到服务器上的自定义类型
但是,我无法请求在javascript中自定义定义的对象(Employee)并完全检索其关系
换句话说,我有一个名为Employee的对象,它有一个名为“LoginStats”的属性,该属性是服务器上的列表类型。当使用Breeze请求此对象时,集合中只返回一个元素,此时应该有6个元素
美元承诺的结果如下所示:
data.results[0].loginStats()[0] //objec
除了Breezejs之外,还有没有其他方法不需要.Net或Enterprise Framework连接器或数据库,并且可以与只接受和返回JSON(无元数据)的普通REST服务一起使用 我们实际上将Breeze设计为独立于.NET,但我们的示例中还没有一个显示这一点。在接下来的一两周中,我们将展示如何将Breeze连接到返回JSON的通用HTTP服务。我们很想在它面世时得到您的反馈,因为我们知道它将成为市场的一大组成部分
编辑:Breeze 1.3.0现在可用并包含,这是一个纯JavaScript
标签: Breeze
durandalasp.net-spa
在使用breeze保存数据后,我们如何发送电子邮件和短信。将信息保存到数据库中效果很好,但在保存数据后,我需要执行更多操作。谁能帮我解决这个问题
var saveChanges = function () {
return manager.saveChanges()
.then(saveSucceeded)
.fail(saveFailed);
function saveSucceeded(saveResult) {
log('Saved dat
我们注意到为以下模型生成的元数据:
[Required]
public virtual string Title { get; set; }
看起来像这样
{
nameOnServer: "Title",
dataType: "String",
isNullable: true
},
换句话说,不添加所需的验证器
这是因为NH不使用数据注释。这是没有实现的还是我做错了什么 是的,这是因为NH不使用数据注释。元数据是使用NHibernate构建的,NHibernate
在我的客户端解决方案中,需要从服务器执行部分刷新。是否可以清除所有已定义的构造函数和所有缓存
甚至试过
dataService = new breeze.DataService(breezeDataServiceSettings),
ms = new breeze.MetadataStore();
manager = new breeze.EntityManager({ dataService: dataService , metadataStore: ms})
你好,谢谢你的帮助
我正在使用
"breeze-bridge-angular": "^4.0.1",
"breeze-client": "^1.6.3",
acceptChanges的文档称Breeze在成功保存后调用此方法。不鼓励直接打电话
但是,根据我的经验,正如这段简单代码所示,它并没有:
let day = this.em.createEntity("Day", { 'note': '', 'owner_id': 1});
await this.em.saveChanges()
1 2 3 4 5 6 ...
下一页 最后一页 共 11 页