我有一个试图保存的实体的客户端图。当我尝试添加实体(如下所述)时,Breeze报告标题错误
我能够根据需要排除/包括实体,因此能够让Breeze持久化图中的所有其他内容,然后最后尝试添加此实体。错误的报告是一致的
我在控制器的saveBundle中捕获了实体的JSON表示,并能够手动将其插入数据库,这为我提供了正确创建实体的一些保证
我被困在如何进一步调试它,并希望得到一些指导
下面是代码第一类(必需:DateTime、value、Message、User):
下面是SQL:
insert in
我使用表单身份验证(即使用Breezecontroller)来保护WebAPI
当我尝试调用WebAPi方法时,我返回了以下错误
现状:404
statusText:“未找到”
消息:“元数据查询失败:“”;,未找到匹配的Http资源
我的问题是为什么我没有得到“未经授权的错误(401)”?
元数据也用[Authorize]修饰
似乎FormsAuthentication的重定向出现了问题。
它正在重定向到登录(具有AllowAnonymous)WebApi方法,并报告它找不到,即使我找到了。此
我在一个项目中使用实体框架代码First+Durandal+Breeze
我有这些实体模型:
公共类打包
{
[关键]
公共int Id{get;set;}
公共字符串打包说明{get;set;}
...
公共虚拟列表{get;set;}
公共虚拟列表物理表单{get;set;}
公共虚拟列表化学表单{get;set;}
}
公共级同位素
{
[关键]
公共int Id{get;set;}
公共字符串名称{get;set;}
...
public int PackingId{get;set;}
我有一个breeze控制器,它在保存客户端未提交的更改期间添加一个实体
protected override bool BeforeSaveEntity(EntityInfo entityInfo)
{
if (entityInfo.Entity.GetType() == typeof(User))
{
if (entityInfo.EntityState == EntityState.Added)
在我通过nuget将breeze升级到1.3.6之前,使用breeze的系统运行良好
chrome中的F12显示它正试图从http://localhost/api/breeze/Metadata而以前它会使用
http://localhost/OnlineCollaborationWithSignalR/api/breeze/Metadata。哪一个是呼叫的正确位置。根目录中似乎缺少应用程序的路径。i、 e.(与Signalr的在线协作)
更新
注意到1.3.1的发行说明。并随后将路由更改为
p
当我对一个查询调用inlineCount()时,这两个查询都按相关属性排序并对查询执行take,inlineCount等于传递给take()的参数。例如,以下查询返回正确的inlineCount:
testFunc = function () {
EntityQuery.from('Residents')
.take(10)
.i
我正在开发一个应用程序,它使用Breeze和Entity Framework 6,以及工作单元和存储库模式。目前,我们正在探索在应用程序中使用静态UnitOfWork实例的可能性。我通过以下操作在控制器中设置了此功能:
public class BreezeController : ApiController
{
private static readonly UnitOfWork _unit = new UnitOfWork();
...
[HttpPost]
我有一个SQL存储过程,它只返回我需要从Breeze调用的布尔值。我该怎么做呢?我所看到的只是一个调用返回实体的存储过程的示例。我还读到,Breeze需要存储过程来返回一个实体,Breeze为该实体提供了元数据。这是真的吗,还是可以调用只返回布尔值的存储过程
谢谢,
RG使用ASP.NET Web API调用存储过程,并使用AJAX从应用程序执行Web API调用。由于没有回复,我最终通过AJAX使用Web API调用。真希望我能用微风完成这项工作。
我有这样一个实体:
EntityA {id, someCollectionOfEntityB}
我使用someCollectionOfEntityB上的扩展从服务器加载entityA
我有一件藏品
然后,在服务器端,某个第三方应用程序会将该项从数据库中删除
稍后,我的客户机应用程序再次调用,以获取带有扩展的EntityA。这次扩展找不到任何记录,因此集合为空
然而,在客户端,从DB中删除的项仍在集合中
为什么??我该如何改变这种行为
[编辑]
我使用了以下策略,但并不能解决问题:
query
在实体框架中,我们可以使用Include加载一行实体及其关联实体
例如,假设实体A与实体B、C和D之间存在一对多关系:
var a = context.A
.Where(a => a.Id == 7)
.Include(a => a.B)
.Include(a => a.C)
.Include(a => a.D)
.Single();
但是,这样的查询可能效率低下。例如,在本例中,我们生成一个SQL查询,返回a与B、C和D的联接。
我有一个从另一个表继承的表。运行该项目时,出现以下错误:无法获取未定义或空引用的属性“propertyref”…有什么想法吗?Edit:从1.3.1版开始,Breeze现在支持继承。
Breeze还不支持继承。但它在我们的待办事项清单上很重要。请在投票站投票支持这一点。在决定下一步的工作时,我们非常认真地对待这些建议
Breeze可以使用多个where语句查询条件1和条件2。但它可以查询条件1或条件2吗
如果没有,使用Breeze时,建议采用什么方法来达到相同的效果
我目前认为唯一的方法是使用特殊的操作方法在服务器上执行查询,这会产生一些问题 使用如下示例中的谓词:
var p1 = new breeze.Predicate("IsArchived", "==", false);
var p2 = breeze.Predicate("IsDone", "==", false);
var predicate =
在应用程序中,我正在构建客户端要做的第一件事就是请求breeze元数据。如果数据库不存在且entity framework需要创建数据库,则不会使用配置为database.SetInitializer的初始值设定项进行种子设定
如果其他内容触发EF首先对dbcontext执行查询,则数据库将按预期进行种子设定
我不确定这是一个bug还是出于某种原因
谢谢我很确定这个漏洞在你这边。首先,在创建和种子化数据库时检索元数据没有问题。一直这样做
您可以在任何Breeze Todo示例中看到这一点。请记住
我是breeze js的新手,我知道breeze有自己的与OData相关的查询语言
但我正在尝试让breeze js使用自定义查询语言,例如FIQL
其中一个表单可以向后端进行查询,我们可以使用这种类型的查询语言运行breeze
FIQL概述:-
(这不是一个技术性的答案,最多只是一个建议)
正如他们在报告中提到的:
今天,Breeze产品已开箱即用,它附带了用于
ASP.NET Web API和OData。它还附带了.NET组件
与实体框架接口,并生成Breeze元数据
从实体框架模型;EF模
我的实体名称是“Products”,但在我的WebApi中,路由被定义为“GetProducts”,因此默认情况下它将查询/api/Products?如果在缓存中找不到所需的内容,是否有任何方法可以代替/api/GetProducts来指定从服务器获取数据的位置
到目前为止,我得到了这个
manager.fetchEntityByKey("Products", productId, true)
.then(fetchSucceeded)
.fail(queryFailed);
我正在尝试使用breeze将图像作为base64字符串保存到服务器DB。
它确实适用于小图像,但如果base64字符串超过某个限制,则不起作用
我曾尝试将元数据中的maxlength更改为更大的vulues,但这并不能解决问题:
{ "name": "Base64String", "type": "Edm.String", "maxLength": "9000000", "fixedLength": "false", "unicode": "true" }
有没有办法增加字符限制?这可能取决
我有一个entityType.product,其dataProperty为complexType。在这个complexType中,我有一个id属性。提交表单时,提交一个字符串,或者如果我将complexType的属性Id设置为“isScalar:false”,我将得到一个空数组
如何获取数组中的字符串
entityType.product:
createInstance: function createInstance(type, data) {
var meta
我正在水疗中心使用Breeze 1.5.5版和Knockout 3.4.0版。我创建了一个函数,用于从实体数组中删除实体。我正在尝试使用rejectChanges()实现撤销,但observableArray没有恢复。调用manager.getEntities()时,我看到EntityState设置为“未更改”。我将函数简化为一个空洞的示例:
var removeVehicle = function(data) {
data.entityAspect.setDeleted();
想弄清楚我们是如何实现元数据的
我们的Breeze Api没有直接绑定到SQL Server,因此我们实现了一个自定义的EFContextProvider和下面的DbSet
public class MetadataDbContext : DbContext
{
public MetadataDbContext()
: base(nameOrConnectionString: "MetadataDb")
{
Database.SetInitiali
为什么thenResolve不能像我期望的那样工作
我在javascript模块中有一个方法:
function addVisit(companyId) {
var newVisit;
return getInventoryItems()
.then(function(data) {
newVisit = createVisit(companyId, data);
})
.then(function()
我需要从不同的数据库(实际上是不同的服务器)获取一些数据,因此我创建了第二个datacontext,指向第二个Breeze控制器、存储库和edmx。我还创建了第二个模型和entityManagerFactory,因为我需要获取的数据是大量的,并且希望将其与基本功能分开。在我的新EntityManager工厂中,如果我有:
breeze.NamingConvention.none.setAsDefault();
一切都很好,但我没有骆驼套。如果我有:
breeze.NamingConventio
标签: Breeze
asp.net-web-api-odata
我现在正试图为breeze创建一个POC来调用WebAPI Odata服务。breeze可以使用默认提供的metadatadocument的Atom/xml格式,也可以仅使用json格式
我检查了web api的源代码,特别是ODataMediaTypeFomatters,并确定ODataPayloadKind元数据不是JsonMediaTypeFormatter的一部分
我尝试使用atom/xml格式,但breeze客户端无法完成该调用
提前感谢,,
Teja现在只支持json
但是,请随时向
我们将EasyNetQ(RabbitMQ)与使用EF6.1的数据层一起使用
我们正在开发一个WPF客户端,它将通过消息总线请求数据。我们希望能够使用Breeze.Sharp管理客户机上的数据,但目前唯一可用的数据服务是WebApi/web(HttpClient)服务
是否可以引入一个接口,以便我们可以提供一个自定义数据服务,该服务将与EasyNetQ消息总线通信?这是绝对可能的,breeze.sharp产品旨在能够与我们的breeze.js产品所提供的所有相同数据服务进行通信
看看breeze.
标签: Breeze
single-page-application
我最近一直在读有关SPA的书,以及它有多好。。
我想知道是否有人能告诉我什么时候应该使用SPA,或者更好地告诉我什么时候不应该使用SPA作为常规MVC,MVC的工具(Rails,MVC4)要成熟得多。有更多的文档关注传统MVC站点的开发。单页应用程序开发很困难。JavaScript密集型应用程序很难编写,调试起来也非常困难
如果你想加入SPA,请访问Pluralsight.com——据我所知,这是开发SPA应用程序的最佳起点。或者学习脊梁骨,但这根本不适合心脏的虚弱(假装?)
还有一个建议:如果
我在嵌套的ComplexTypes中遇到了一些问题。与中描述的错误不完全相同,但这可能是因为嵌套的ComplexType也是其他模型的属性
客户=>地址
客户=>InvoiceDetails=>Address
我得到的错误是nextParent.complexType上的Javascript NullRefException。这在ComplexAspect构造函数中。调试Breeze后,我认为此调用应该是nextParent.complexAspect.parent。但是在修改了代码之后,我
我是新来的微风,我无法想象是什么导致了这一切的发生。这是一个由两部分组成的问题:
1) 我的功能很简单。我使用两个谓词进行查询:
var getUserHealthMetricFromId = function (userId, healthMetricId, forceRemote) {
var p1 = new Predicate('userId', '==', userId);
var p2 = new Predicate('healthM
这是我的代码:
[Authorize]
[BreezeController]
public class BreezeController : ApiController
{
private readonly MyRepository _repository;
public BreezeController()
{
_repository = new MyRepository(User);
}
[HttpGet]
public I
我安装了Breeze Sharp客户端,但收到以下警告
发现同一依赖项的不同版本之间存在冲突
装配在Visual Studio中,双击此警告(或将其选中)
并按Enter键)修复冲突;否则,添加以下内容
绑定重定向到应用程序中的“运行时”节点
配置文件:
请尝试使用最新的Breeze.Sharp Nuget(0.5.9.0或更高版本),如果您仍然存在问题,请告诉我。可能重复的我用其他信息更新了问题。在安装Breeze Sharp客户端后,我看到了这个问题。我的其他项目都没有引用Newtonso
我有以下数据结构:
任务实体具有作业实体的集合
作业实体具有联系人实体的集合
我有一个自定义验证器,在保存作业实体之前检查联系人集合是否为空。它很好用
在应用程序的另一部分中,我从数据库中加载任务实体和作业实体(但没有联系人实体,因为在应用程序的这一部分中不需要它们)
用户对任务实体以及属于该任务的一个作业实体进行一些修改。然后,当用户点击save按钮时,它会失败,因为自定义验证器会抛出一个错误,因为集合中没有联系人实体
我如何处理这种情况?基本上,这里不应该触发自定义验证器,但是我如何知道
Breeze的最新版本支持EF6。迁移Breeze项目以使用EF7需要什么
由于我的项目目前使用的是EFContextProvider,因此我认为我必须后退,转而依赖DbContext。这是否意味着我必须实现对EFContextProvider的替换以使用最新版本,或者是否有办法使当前的EFContextProvider版本使用EF7的DbContext?EF7是对实体框架的重写。这意味着有很多,很多突破性的变化。现有的EF6组件不能与EF7一起使用。甚至DbContext的名称空间也已更改。要
这是使用BreezeJS和Breeze控制器连接到EF提供者。我有几个相关的实体,让我们称它们为Customer,它有一个名为Orders的导航属性,该属性链接到该客户的一组订单实体
我想在UI上显示的是一组匹配部分名称搜索的客户的订单数量摘要。我可以通过返回所有Order对象来实现这一点,但它们都是相当大的对象,我不想在不需要的时候返回100个。inlineCount()方法似乎总是给出顶级实体(客户)的计数,而不是子实体的计数,无论我将其放在语句中的什么位置
var predicate =
在viewmodel的激活方法中,我有以下代码
function activate() {
var promise = Q.all([datacontext.getManufacturers(manufacturers)]);
logger.log('Frames View Activated', null, 'frames', false);
return promise;
}
在我的数据上下文代码中
var getManufacturers = function (
使用Breeze时,我想知道如何将其与处理电子邮件通知、审核日志、业务验证(即客户必须存在)等事务的服务层集成
例如,给定以下场景:
public class SalesAppRepository
{
private readonly EFContextProvider<SalesAppContext> _contextProvider;
public SalesAppRepository(EFContextProvider<SalesAppContext&g
我有一个实体框架模型,它有一个基本类型和许多子类型。该模型使用WCF作为ODataAPI公开
但当我尝试创建新的子实体时,会收到以下错误消息:
“处理请求流时出错。必须为参与继承的类型指定类型信息。”
当我查看网络流量时,我也理解它失败的原因。它发布到基本实体,并且没有关于它是哪个子对象的信息:
POST BaseEntities HTTP/1.1
Content-ID: 1
DataServiceVersion: 2.0
Accept: application/atomsvc+xml;q=0.
解决了!这是一个令人扫兴的问题(装订错误)。但可能有人喜欢就代码(dataservice、viewmodel等)进行争论或评论
我尝试构建一个Breeze示例,在那里我得到一条数据库记录(使用fetchEntityByKey),显示它以进行更新,然后使用保存按钮将更改写回数据库。我想不出如何让它工作
我尝试使用一个数据服务('class')和一个视图模型('class'),将带有敲除的视图模型绑定到视图
如果有人能提供样品或提示,我将不胜感激
谢谢你,哈利
var dataservice =
让一个Breeze控制器处理多个EF上下文是否可行?每个上下文都有不同的数据模型
或者,是否可以让一个微风客户端使用两个不同的微风控制器?两者都可以。两者都很常见
通常每个控制器都有一个EF上下文。这当然是一条简单的道路(但不是唯一可能的道路!)
在客户机上,您可以将它们视为不同的“数据服务”。在两种情况下类似于以下内容:
// Highly condensed, simplified example
var fooServiceName = 'api/foo';
var barServiceN
我有一个breeze控制器,它返回的JSON与普通ole APIController不同
My Breeze.js控制器的方法如下所示:
[HttpGet]
public IQueryable<Application> Applications()
{
var admin = _contextProvider.Context.Administrators.Include(i => i.Applications).Single(o => o.Name == User.Ide
我用breeze开发了一个应用程序。我需要在本地缓存中检索id=123的实体,因此我以第一个场景结束:
return manager.fetchEntityByKey("Transport", 123, true) // 3rd param is true --> local cache
.then(fetchSucceeded)
.fail(queryFailed);
function fetchSucceeded(data) {
我有一个搜索字段的文本输入,然后字符串被传递到EntityQuery。当查询包含单个报价时,我会收到如下消息:
“substringof(O'Malley,FirstName)eq true”中的位置39处有一个未终止的字符串文字
甚至在硬编码查询时也会发生这种情况,如下所示:
var query = breeze.EntityQuery
.from("Users")
.expand("GroupUsers.Group")
我与durandal/breeze一起从事一个项目。我的activate功能中有以下代码:
var activate = function (routeData) {
initLookups();
var idTran = parseInt(routeData.idTran);
var idItin = parseInt(routeData.idItin);
if (idItin == -1)
idItin = datacontext.crea
标签: Breeze
single-page-application
目前正在玩约翰爸爸的热毛巾,我目前有一个奇怪的错误:
TypeError: Object [object Object] has no method 'isPartial'
我一直在调查这件事,但没有成功。
我所做的就是创建一种新的实体
我不知道我是否应该为这个问题提供更多的信息。
请帮忙
谢谢:)
下面是完整的错误:
"TypeError: Object [object Object] has no method 'isPartial'
at proto.setProperty (http:
我正在从breeze保存一个复杂的对象图,从服务器上得到以下错误:
错误:Oracle不支持交叉应用
我们使用的是使用Devart provider的Oracle数据库。根据我的研究,似乎这个问题的唯一解决方案是避免某些linq查询表达式。这些线程提供了进一步的上下文:
最后一个链接的帖子特别令人沮丧,因为这似乎是一个与微软有关的EF问题,他们对此已经有相当一段时间不了解了
由于解决这一问题的唯一方法似乎是避免使用特定的linq运算符/表达式,因此我必须问,是否有任何方法可以使用breeze
在客户端上,我正在创建对象“A”并保存它。在BeforeSaveEntity(服务器上)上,另外创建/修改对象“B”,并将此对象与对象“A”一起返回到客户端(感谢我正在使用的版本1.3.5中的错误修复)。
但是,当对象“B”返回到客户端时,不会调用该实体的初始值设定项(至少看起来是这样),而是调用实体构造函数
我做错了什么,或者这可能是其他问题吗?克里斯
我们无法重现这个问题。
在我们的测试中,实体“B”(在服务器上创建)的初始值设定项被调用
请注意,根据您的帖子,您正在BeforeSaveEn
我正在尝试创建一个加载微调器,当breeze与服务器通信时将显示该微调器。Breeze中是否有某些属性仅在Breeze向服务器发送数据、接收数据或等待响应时(例如,在进行异步调用但尚未响应后)才为“true”?我想把这个数据绑定到一个敲除的可观测数据上,把旋转器绑定到这个可观测数据上
谢谢
Elior我看不到Breeze查询时设置或观察到的任何属性,但如果您使用datacontext或某个JavaScript模块进行数据调用,您可以这样做-
编辑
考虑到John的评论,我添加了一种标记式的跟踪每
当我尝试对ID值执行上述查询时,它会为2列返回null值,并且表中的记录确实包含ID值。这些列是字符串
var query = EntityQuery.from('Cases')
.where("ID", "==", id);
caseID是一个包含所需ID的全局变量。如果我将其替换为任何ID(10或任何其他ID)的常量值,就会看到获取属性AuditTypeCd
当使用全局变量caseID时,查询会为少数列返回null值。非常奇怪的行为。请澄清这个问题。我不确定你在
我正在使用HotTown为我正在使用的应用程序开发离线-在线场景
我想知道我是否可以使用现有的HotTow堆栈和Breeze来查询我的脱机数据库
如果我能将离线和在线场景与breeze结合起来并有效地实施场景,请告知我们是否有人存在此类风险。为了帮助您使用breeze实施离线/在线解决方案,您应该使用MetadataStore的导出功能将实体导出为字符串,将实体存储在脱机数据库中,然后将其导入回元数据存储。有关此主题的更多信息,请阅读
在Validator类中,rootContext有一个displayName函数,用于在构造验证错误消息时查找显示名称。我将用户友好的显示名称存储在所有DataProperty的CustomProperties对象中,因此我希望displayName函数先查看该区域,再查看其他区域。据我所知,没有办法从验证器类重写rootContext来更改它。我唯一能想到的另一种方法是在构造验证器时在上下文中传入一个新的displayName函数,但为了做到这一点,我必须编写一个自定义元数据解析器,除非我缺少
当查询扩展关联的导航属性时,Breeze似乎正在还原fkey属性值——即使在使用preserveChange合并策略时也是如此。我们需要一种保存所有更改的方法
步骤:修改缓存中实体的fkey属性。使用expand从服务器查询关联的导航道具。查询完成(数据合并)时,fkey属性值为保存的值(已还原)
为了演示这个问题,我运行了以下代码片段两次。第一次加载缓存并修改实体[0]。ProjectAreaRef从1修改为48。第二次执行相同的查询以测试合并。第二次查询后,orig为48,val为1。已覆盖
我不明白为什么在保存新注释时不调用BeforeSaveEntity()。注释会保存到数据库中,但我在服务器上修改的字段不会被更新。BeforeSaveEntity函数中的断点未命中。SaveChanges()已运行
//服务器控制器
公共类租赁存储:EFContextProvider
{
公共租赁机构(主要用户)
{
//
}
受保护的覆盖bool BeforeSaveEntity(EntityInfo EntityInfo)
{
var实体=entityInfo
我正在使用breezejs在VS2012中使用Hottown SPA开发一个演示应用程序。
错误“uncaughterror:没有可用于此查询的元数据”并不总是发生,但有时在我尝试初始化数据(我在初始页面加载时调用Prime方法,这基本上是一个简单的查询)以进行查询时会发生。有时应用程序加载失败并给出错误,但另一方面它并没有失败——它可以工作
这是密码
function primeData() {
var promise = Q.all([
getLookups
1 2 3 4 5 6 ...
下一页 最后一页 共 11 页