我下载了一个Breeze示例,在VisualStudio中打开它,按F5在debug下运行它(或者按ctrl-F5而不进行调试),但找不到IE报告“请求的URL:/Views/Home/Index.cshtml”
如果我通过“project | Properties | Web”将项目“Start action”设置为“Specific page”,问题就会消失。我可以将页面名称留空;只要点击那个单选按钮
你为什么不为我们这样做,这样就没有人会遭受这种经历呢?我很同情自己曾多次经历过这种令人不安
对于我的一个实体,我看到组返回未定义,因此对组抛出错误。_fixupKey()
在我看来,km.entityTypeName存储实体的短名称,而em.(u entityGroupMap存储实体与名称空间的连接名称
有人知道这是不是breezejs的臭虫吗?还是我的模型中有什么错误导致了这个不匹配的密钥?这是我的自定义breeze数据服务适配器实现中的一个问题。谢谢你和我一起看 Tim,因为我们无法在测试套件中重现它,您能提供重现该问题的小型解决方案吗?这可能与模型中的某些特性有关。请把复印件寄到
我们有一个breeze客户机解决方案,其中显示了父实体及其子实体的列表。我们对一些子实体进行硬删除。现在,当用户执行删除操作时,没有问题,但是当其他人执行删除操作时,似乎无法使已加载到缓存中的子项无效。我们对父对象执行一个新的查询并扩展到子对象,但是breeze附加了它已经听说过的所有其他子对象,即使数据库没有返回它们
我的问题:breeze难道不应该意识到我们正在通过expand加载,从而在从db加载结果之前从缓存中完全删除所有子项吗?如果不是这样的话,我们还能如何做到这一点
谢谢这是一个有效
我正在着手一个需要在线/离线移动同步的新项目。我要试试微风
web 2 API上的EF6 oDATA似乎存在一些问题(与批处理事务和保存订单有关)
据我所知,至少在某种程度上,EF7 Beta中已经解决了这些问题
Breeze与EF7一起开箱即用吗
如果不是的话,可以让它玩得很好吗?如何(链接OK)
EF7真的解决了WebAPI2中批处理事务和保存订单的问题吗
对于oData4的edm问题,是否有切实可行的解决方案
我们肯定会支持EF7,但不太可能在EF7推出测试版之前发布任何内容。至于EF6
使用微风0.73.3。基于John Papa的Breeze版Code Camper-为我的应用程序建模。manager.hasChanges似乎有问题。Manager.rejectChanges()将hasChanges发布为false。Manager.saveChanges()不会将任何更改发布到hasChanges。当然,在成功保存后,应该将其发布为false。很好!这一问题现已在V0.73.6中修复,可通过nuget或breeze网站获得。Bug已确认。你可以请约翰·P重新出版谢谢你的快速
我想当您将一个子实体添加到另一个实体,然后将该子实体标记为已删除(之前未保存更改)时,我发现了一个错误
以下是测试:
test("delete unsaved entity", 1, function () {
var realEm = newEm();
//ok(realEm.hasChanges() === false, "The entity manager must not have changes");
var query = EntityQuery.from(
根据文档,这样做应该检索给定实体的验证器:
manager.fetchMetadata().then(function () {
var creditorType = manager.metadataStore.getEntityType("Creditor");
var creditorValidators = creditorType.validators;
});
creditorType.validators是一个空数组。我不明白为什么,因为当我检查creditorTy
我在应用程序中使用了多个管理器。创建新管理器后,我立即执行以下操作(伪代码):
在现有管理器中,所有实体都按预期工作,并且所有导航属性都已正确填充。但在新的管理器中,某些实体具有空导航属性。将填充外键属性,但导航属性为空
现任经理:
ParentEntity
id = 1
childEntities = [childEntity]
ChildEntity
id = 2
parentEntity = parentEntity
parentEntityId = 1
新任经理:
ParentEnt
我使用webapi asp.net编写了ODataserver,当我尝试解析元数据时,出现了此错误
无法处理返回的元数据:不可为null的DataProperty不能具有null defaultValue。名称:未定义
我想手动保存对服务器的更改,这些更改是对客户端上的实体所做的。所以我的第一个问题是:如何找到这些实体(查询)
保存实体后,我想告诉breeze客户端这些实体不再处于挂起保存状态。如何执行此操作?此方法允许您检索对任何客户端实体所做的任何更改
调用该方法会将任何实体返回到“未修改”状态
然而。。。做这两件事的一个更干净的方法是简单地拦截服务器上的SaveChanges调用,并在那里实现您自己的逻辑。在这种情况下,Breeze客户端将处理您提到的两个问题
请参阅Breeze zip中的NoDb示例,
我创建了一个自定义实体级验证函数,与文档()中的函数非常相似。调用getValidationErrors()时,出现以下错误:
无法读取未定义的属性“name”
错误来自:
proto.getValidationErrors = function (property) {
assertParam(property, "property").isOptional().isEntityProperty().or().isString().check();
var result = _
在BreezeJS文档中,他们描述了如何在相关属性上执行投影,它在我的开发环境中运行良好
var query = EntityQuery.from("Orders")
.where("Freight", FilterQueryOp.GreaterThan, 500)
.select("Customer.CompanyName")
.orderBy("Customer.CompanyName");
但如果在运行查询时发布应用程序,则会出现错误:
Only properti
假设服务器上有以下类:
类A具有属性A
类B,它派生自A,并添加属性B
我有另一个类,classC,它有一个C类型a的属性
我通过创建3个复杂对象(有一个实体E,其属性类型为CType),为每个类类型(AType,BType,CType)提供元信息,如下所示(抱歉,这是TypeScript):
导出类EType{
公共静态注册表类型(metadataHelper:breeze.config.metadataHelper,store:breeze.MetadataStore):void{
me
在关于breeze和WebAPI控制器的文章中,我们看到了WebAPI控制器上方法名的某种命名约定。例如,对于Todo实体类型,有一个Todos()方法
假设我有一个entityType“Customer”。然后我在ApicController上创建了一个方法:
[HttpGet]
public IQueryable<Customer> GetCustomers() { ... }
如果失败,我将收到以下错误:
No HTTP resource was found that mat
标签: Breeze
single-page-application
我很想分享这个,因为它已经困扰了我好几次,我一直在错误的地方寻找调试问题-
我会做一些类似于-
var foo = ko.observableArray();
datacontext.getFoo(foo, someId)
.then(doSomethingElse)
.fail(youFail);
在我的数据上下文中,我会从本地存储返回一些东西
var getFoo = function (fooObservable, id) {
var query
我注意到元数据中有一个object entityType,还有一个object enumType
我们使用manager.metadataStore.getEntityType()访问实体的元数据
如何为给定的枚举执行此操作?如何使用元数据在客户端创建枚举
另外,当我将枚举值分配给属性时,我希望按名称而不是按值分配给它
例如,假设状态为myEnum类型:
myEntity.Status = myEnum.Valid;
而不是
myEntity.Status = 1;
breeze是否有任何帮
因此,我制作了一个页面,其中有一个表,可以让您选择一个数据库表和要查看的列,然后构造一个breezeEntityQuery并执行该查询,然后将其删除以绑定到表。当我已经对数据库进行了调用时,这是有效的,但是,当这个页面是我在web应用程序上点击的第一个页面时,元数据中没有任何信息
问题:
是否有一些函数可以在应用程序启动时调用,这些函数将调用我的breeze api并映射元数据,而无需首先实际调用其中一个实体?是的,您可以在manager上调用fetchMetadata(),这将返回一个承诺
e
我有一个web服务,它返回一些数据,然后在服务器上转换成新的实体,然后传递给客户机,用户可以在那里编辑它们。如果他选择保存更改,则应将实体提交到服务器并插入到数据库中。我有两个问题:
当实体返回到客户端时,Breeze将它们标记为EntityState.New
Breeze期望未更改的实体具有主键集。因为没有一个返回的新实体具有密钥集(Int32类型的键值等于0),Breeze认为服务器返回了同一实体的多个实例
要演示此问题,请更改AngularJS示例中的ToDosController.T
我有一个javascript应用程序,它在前端保存更改,将更改推送到WebAPI控制器,并将更改保存到实体框架上下文。为了保存对表所做更改的历史记录,我想截取对某些表的某些编辑,并将它们从“编辑行类型”命令更改为具有编辑数据的“新行”命令。我当前的控制器看起来像这样
[HttpPost]
public SaveResult SaveChanges(JObject saveBundle)
{
return _ContextProvider.SaveChanges(saveBundle);
尝试使用此字段保存新实体
[Timestamp]
public byte[] TimeStamp { get; set; }
抛出验证错误必需。在保存之前,我没有在时间戳上设置任何值。保存现有项会按预期更改数据库中的时间戳
这个值是由DB本身设置的,因此不需要初始化,或者我在这里错了吗
编辑:
我认为这是可行的,因为它是可空的
[ConcurrencyCheck]
public int? RowVersion { get; set; }
新的DB条目的值为null。我的应用程
对于下面的代码,我遇到了一个问题,即并非所有列都是data.results数组中的返回数据。例如,如果第1行的数据库中col4为null,则data.results[0]不包含col4的元素,但第2行具有值,则data.results[1]将包含col4的值。我希望数组中的每个返回项都包含数据库值或null的所有项。如果不能返回null,则可以使用空字符串
var query = new breeze.EntityQuery()
.from('mytable')
标签: Breeze
single-page-applicationdurandalhottowel
我不清楚如何在MVC4 SPA模板中以过滤器谓词作为参数实现对新视图的架构式导航。
假设我有一个带有日期下拉列表(过滤器)的主视图和一个按钮“gotoSessions”来导航到Sessions视图。GoToSessions按钮将导航到Sessions视图,该视图仅显示选定日期的会话。不选择日期将强制会话视图显示所有可用会话
更新config.js中的“sessions”路由以接受过滤器参数
var routes = [{
url: 'sessions/:filter',
mod
我的数据结构如下:
public abstract class Vehicle { }
public class Car : Vehicle { }
public class MotorCycle : Vehicle { }
这对breezejs非常有效,但当我想从缓存中获取实体时:
function getLocal() {
var entity = manager.getEntityByKey("Vehicle", id);
}
使用“Vehicle”(基类)作为资源参数,
我正在将Breeze1.4.11与Web Api和EFContextProvider一起使用
获取元数据后在客户端上扩展实体类型:
var addressStringProperty = new breeze.DataProperty({
name: "addressString",
isUnmapped: true
})
metadataStore.getEntityType('Account').addProperty(addressStringProperty);
此属性
我使用的是Breeze.Sharp的0.5.5.0版本,我的一个模型有一个Nullable属性
第一次使用SaveChanges()保存模型时,该值与预期一样为空。但是,如果稍后我尝试将该值更改为0,则传递给breeze服务的saveBundle仍将该值显示为null
在客户端中调用SaveChanges()之前,我可以确认该值为0,并且客户端实体处于修改状态,但是调用SaveChanges()后,该值会立即设置回null
当查看发送到服务的saveBundleJson时,我在originalV
我用breeze创建了一个新条目,在提交时,我想使用我用来创建记录的基本字段(如使用电子邮件)立即获取记录的id,请告诉我如何使用breeze获取新记录的id
这就是我所做的
bind gotoStep2() with the save button which pass in the value of the textbox to use as predicate,
// the save() method successfully create the record to the data
我正在使用BreezeJS/Entity框架编写一个简单的活动规划web应用程序-用户创建一个锦标赛实体,并要求服务器生成一个或多个建议计划,其中一个用于本文目的
每当用户单击generate plan时,应将包含生成计划所需的大量详细信息的比赛提交给服务器,服务器应删除任何现有计划,生成新计划,并更新客户端模型
我想,这是一次名副其实的扑救
问题是最后一步:更新客户端模型。服务器添加的计划实体在客户端中按预期显示,但忽略删除。也就是说,客户最终会得到新的和旧的计划
这是我的名字save:
[注
标签: Breeze
predicateone-to-one
如何筛选实体以仅获取相关属性(一对零/一关系)不为空的记录?
从文档中,我可以得到以下信息来过滤没有订单的客户:
var p = Predicate.create("orders", "any", "id", "!=", null).not();
var query = EntityQuery.from("Customers").where(p);
客户和订单之间存在一对零或多关系。如果客户和订单之间存在一对零/一的关系,如何执行相同的操作?然而,breeze还不支持OData 4,因此不能使
如果我执行以下查询:
var foos = manager.executeQueryLocally(
breeze.EntityQuery.from("foos")
.withParameters({bar:"xyz"})
);
console.log(foos[0].myCollectionNavigationProperty);
返回的myCollectionNavigationProperty似乎是长度为0的javascript数组,如果或:
集合导航属性在服
我创建了一个新的MVC4应用程序并安装了nuget软件包Breeze.MVC4WebApiClientSample
在BreezeSampleController中,我添加了一个“Authorize”属性。当我浏览到这里
http://localhost:XXXXX/api/BreezeSample/todos,我仍然可以看到数据
我怎样才能授权通话?我试图删除BreezeController属性并添加这些
[ODataActionFilter,JsonFormatter]但我有另一个错误(控制
我用Durandal/breeze开发了一个asp.net解决方案
以下是我获取所有托运人的代码:
var query = EntityQuery.from('Shippers')
.select('id, name, street, city');
return manager.executeQuery(query)
.then(querySucceeded)
.fail(queryFailed);
以下是相关模型:
publi
我们目前正在使用breeze.js(版本1.3.4)开发一个小型Hmtl/JavaScript应用程序。我们配置为使用OData协议查询实体
对于一个简单的实体,它工作得很好。如果查询复杂实体(联系人实体具有电话号码和地址的两个复杂类型属性),我们将收到以下错误:
"TypeError: Cannot call method '_createInstanceCore' of null
at ctor.startTracking (<ServerAddress>/scripts
我试图在混合AND或谓词时为breeze.js配置正确的语法。我在breeze网站上没有看到一个例子,在其他地方也找不到
基本上,我想在WHERE子句中这样做:
(
age > 30 AND
sex == 'M' AND
jobStartDate >= '1/1/2000'
)
OR
(
exemptStatus == 1
)
这将带回符合3个标准或豁免的实体。我正在使用EF6和ODATA语法
谢谢试试这个:
var Predicate = breeze.Predic
有没有办法让服务器上的BreezeAPI将空字符串视为null?
这是ASP中绑定模型的默认行为。现在,随着BreezeController和EFContextProvider的使用,它被破坏了
更新:
我在用breezejs和knokout。电子邮件字段出现错误:此字段不是必需的,但空字符串由.NET EmailAddressAttribute验证
情况:用户更改具有此电子邮件字段的设置。若字段并没有更改,它将保持为空,但当它被更改并清除后,在保存服务器时会抛出此字段的验证错误
ApicCon
有人能澄清如何将实体框架与Angular和Breeze集成吗?
另外,我是否需要使用EFContextProvider才能让BreeeJS使用EF接口?
我正在尝试使用数据库优先的方法并导入我的EF模型。我不太清楚为什么EFContextProvider首先是必需的,而不是使用默认的EF上下文。假设需要的话,它有哪些定制使它成为Breeze独有的。感谢用于.NET服务器开发的Breeze组件从来都不是必需的。它们的存在是为了使服务器开发变得更容易,而微风客户端技术(BreezeJS和Breeze
我知道有一些类似的问题(例如),但它们似乎都在不同的背景下。这是我在chrome控制台中看到的:
Unhandled rejection reasons (should be empty):
["TypeError: Cannot read property 'compound' of null…://localhost:1476/Scripts/breeze.debug.js:234:15)", joinBy: function, equals: function, indexByKey:
所以我有三种实体类型:
addType
name: 'DaySchedule'
apiVersion: 3
dataProperties:
uid: "uid"
employee_id: "int"
day: "string"
shifts:
complexType: "Shift"
hasMany: true
navigationProperties:
employee:
type: "Employee"
assoc: "DaySchedul
微风版本:1.5.3
我在SO上遇到了一些与旧问题类似的问题,但似乎这个“错误”再次出现:
我有一个未填充的1对多单向导航属性。我已经检查了元数据和服务器的响应。我甚至在breeze中进行了调试,节点(或rawEntity)看起来非常完美
我试图找到它,并得出结论,它发生了,因为没有为我的导航属性找到“反向”-属性,并且mergeRelatedEntities函数在不更新目标实体的情况下返回:
function mergeRelatedEntities(mc, navigationPropert
我有一个具有复合主键的实体,它模拟了多对多关系:
public class ActualAnswer
{
[Key]
[Column(Order = 0)]
public int AnsweredQuestionID { get; set; }
[Key]
[Column(Order = 1)]
public int AnswerID { get; set; }
}
如果使用Breeze删除客户端应用程序中的其中一个实体,则其状态设置为Del
我们仍在使用Northwind数据库测试Breeze,我们遇到了一个奇怪的行为
首先,我几乎可以肯定这不是一个bug,它不可能是,它是如此基本的操作
我们有一个产品实体,我们将其SupplierID设置为null(外键可以为null),如下所示
product.SupplierID(null)
firstProduct.SupplierID(null);
firstProduct.SupplierID(null);
在微风吹过之后,做这些
将产品的SupplierID值设置为
以下代码通常会耗尽堆栈空间,因为类型实体有一个名为EntityAspect的属性,该属性有一个名为Entity的属性,该属性指向所属实体的类型Entity。这种递归定义会导致一些工具失败或运行速度非常慢,但最显著的是击倒。有什么办法可以解决这个问题吗
var custType = _this.metadataStore.getEntityType("Customer");
var cust1 = custType.createEntity();
var js = ko.toJS(cust1);
我使用Breeze、ASP.NETWebAPI和MySQL数据库开发SPA。数据库的主要实体(代码优先EF)有4个一对多关系和20个简单属性。当我下载了约500个实体(包含相关实体的对象总数约2000个)后,Chrome选项卡进程使用250+Mb的RAM(不加载UI)。如果我保存一些实体,这个值就会增加。这正常吗?如何降低此值?到目前为止,我无法重新生成此结果,因此可以获取更多信息吗?为了确保我清楚,您的查询是针对500个根实体的,每个根实体有20个简单属性和4个导航属性,查询的实体总数只有20
一位朋友的询问失败了。幸运的是,他在失败回调中捕捉到了它(您确实对每个服务器调用都有一个失败回调,对吗?)。以下是他所拥有的:
var getPersons = function(personsObservable) {
return EntityQuery.from('Person')
.using(manager).execute()
.then(querySucceeded).fail(queryFailed);
}
function q
我有一个简单的模型,首先是Entity Framework 5代码,ActiveEntity是一个抽象类,具有int-Id属性和bool-IsActive字段
public class License:ActiveEntity
{
public string LicenseName { get; set; }
public LicenseType LicenseType { get; set; }
public State State { get; set; }
考虑下面的代码片段。。。下面的executeQuery两次都调用了WebApi控制器元数据方法。。。为什么?
谢谢,
特拉维斯
Breeze在每次查询之前检查给定服务的客户机上是否存在元数据。如果元数据不存在,那么它将在执行查询之前请求元数据
我猜想在您的情况下,两个查询都是在其中一个返回元数据之前开始的。这将导致多次获取元数据。然而,一旦它真的写下来,你就不应该看到任何进一步的请求
一个建议是在任何查询之前强制加载元数据,即
manager.fetchMetadata().then(fun
文档说明,对于web api,您不使用breeze查询上的.expand,它将返回导航属性。这很有效,但是如何防止它返回不想要的孩子呢。似乎我在某个地方读到过,您可以限制将返回的深度,但我没有找到它。只要您不懒得加载导航属性,那么web api就不会在您的实体上发送任何导航属性。看
然后,可以使用Breeze EntityQuery.expand方法精确指定要关闭的导航属性 我使用的是Telerik的OpenAccess ORM,它使用的是延迟加载。我想BreezeController属性可能与
我有客户端定义的元数据,如下所示:
helper.addTypeToStore(manager.metadataStore, {
name: 'PriorStudy',
dataProperties: {
priorStudyId: { type: breeze.DataType.Int32 },
priorStudyType: { max: 6 },
priorStudyPurpose: { max: 12 },
notes: { max: 250 }
微风版本:1.4.14
我有两个实体:人和病人。Person有一个电话列表,患者从Person继承
我可以在服务器上查询:
var patients = Patients.Where(x => x.Telephones.Where(xx => xx.Number == "XXXX-XXXX").Any());
我还可以在浏览器上粘贴此url获得结果:
/breeze/Patients?$filter=Telephones/any(x1: x1/Number eq 'XXXX-XXX
我使用表单身份验证(即使用Breezecontroller)来保护WebAPI
当我尝试调用WebAPi方法时,我返回了以下错误
现状:404
statusText:“未找到”
消息:“元数据查询失败:“”;,未找到匹配的Http资源
我的问题是为什么我没有得到“未经授权的错误(401)”?
元数据也用[Authorize]修饰
似乎FormsAuthentication的重定向出现了问题。
它正在重定向到登录(具有AllowAnonymous)WebApi方法,并报告它找不到,即使我找到了。此
我有这样一个实体:
EntityA {id, someCollectionOfEntityB}
我使用someCollectionOfEntityB上的扩展从服务器加载entityA
我有一件藏品
然后,在服务器端,某个第三方应用程序会将该项从数据库中删除
稍后,我的客户机应用程序再次调用,以获取带有扩展的EntityA。这次扩展找不到任何记录,因此集合为空
然而,在客户端,从DB中删除的项仍在集合中
为什么??我该如何改变这种行为
[编辑]
我使用了以下策略,但并不能解决问题:
query
上一页 1 2 ...
4 5 6 7 8 9 10 ...
下一页 最后一页 共 21 页