Tag: breeze

基于角色的安全性在breezejs和EF6中

我在一个具有3个主要安全角色的项目中使用Breeze.js,AngularJS,Web API和EF6。 让我们说高级,中级和低级。 在这些示例中,我有Person,Company,LowLevelSecret,MediumLevelSecret,HighLevelSecret实体。 安全问题1:在第一个示例中,我希望能够保护对整个实体的访问。 所有安全角色(低级别,中级别和高级别)都应该能够访问Person实体。 只有具有匹配级别或更高级别的用户才能访问保存特权信息的秘密实体。 例如我可能有。 class Person { public int Id { get; set; } public string Name { get; set; } public LowLevelSecret LowLevelSecret { get; set; } public MediumLevelSecret MediumLevelSecret { get; set; } public HighLevelSecret HighLevelSecret { get; set; } } LowLevelSecret,MediumLevelSecret和HighLevelSecret看起来像这样: class LowLevelSecret { public int Id { […]

我将如何使用带有.net 4.0的Entity Framework 6的breeze

我使用nuget安装了我的4.0 MVC项目Entity Framework 6(以启用ode首次迁移)。 然后我尝试安装breeze包Breeze.Server.ContextProvider.EF6。 但是我错过了微风的assembly参考错误。

如何使用IQueryable方法返回额外数据?

我正在使用Entity Framework和Breeze。 对于实体,我想提供一些与实体相关的数据。 通过查询实体表并连接到其他表,可以最有效地获取此数据; 此查询包括按子查询分组。 我试图通过将它作为[NotMapped]字段添加到实体来解决这些额外数据: [NotMapped] public string NotMappedField { get; set; } 那么我基本上想要替换这个webapi控制器方法 [HttpGet] public IQueryable MyObjects() { return _contextProvider.Context.MyObjects; } 有这样的事情: public IQueryable MyObjectsWithExtraData() { var query = from o in _contextProvider.Context.MyObjects // big complex query select new MyObject { FieldA = o.FieldA, FieldB = o.FieldB, // all fields NotMappedField = x.ResultFromComplexJoin […]

如何使用Breeze与通用工作单元和存储库?

使用这个: https://genericunitofworkandrepositories.codeplex.com/ 和以下一组博客文章: http://blog.longle.net/2013/05/11/genericizing-the-unit-of-work-pattern-repository-pattern-with-entity-framework-in-mvc/ 我们正在尝试将这些存储库与Breeze一起使用,因为它可以很好地处理客户端javascript和OData。 我想知道我们如何使用这些与Breeze来正确处理覆盖BeforeSaveEntity 。 我们在保存期间需要发生相当多的业务逻辑(修改像ModifiedBy , ModifiedTime , CreatedBy等属性)但是当我们更改它们时它们不会被微风更新,所以我们必须在保存后重新查询(我们已经尝试手动映射更改,但它要求我们复制所有业务逻辑)。 我们的第二个选择是检查每个entity的类型,然后为它请求正确的存储库,在内部处理保存,然后在客户端上执行新的get请求以获取更新的信息。 这很健谈,所以我们希望有更好的方法。 在绕过breeze的保存而不返回错误或之后必须重新获取数据的情况下更新这些对象的正确方法是什么? 保存期间Breeze with Business Logic的任何示例都非常有用,特别是如果它直接在BeforeSaveEntity方法中发生在服务,存储库或其他内容中。

无论我如何尝试,System.Web.Http引用默认为4.0版本

我在我的项目中使用BreezeApi NuGet包。 它在Visual Studio 2013中。 我收到这个错误。 错误41程序集’Breeze.WebApi2,Version = 1.4.0.0,Culture = neutral,PublicKeyToken = f6085f1a45e2ac59’使用’System.Web.Http,Version = 5.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35’,其版本高于引用程序集’System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35′ 我不知道为什么我的项目不断引用4.0版本。 我试过的事情: 我从我的项目中删除了system.web.http 4.0的引用,并浏览到5.0 DLL文件位置。 一旦我添加它并返回到解决方案资源管理器,右键单击system.web.http dll,它显示4.0.0.0。 我在web.config中添加了程序集绑定,如下所示 我该如何解决这个问题?

使用Newtonsoft.Json反序列化DbGeometry

我正在按照John Papa在其最新的PluralSight课程中概述的方法,使用Angular,Breeze和Web API 2构建SPA。 一切运作良好,我可以提取信息,更新,插入,删除回服务器。 但是我正在使用空间类型,当我尝试更新具有空间类型的实体时,我得到以下错误 Newtonsoft.Json.dll中出现“Newtonsoft.Json.JsonSerializationException”类型的exception,但未在用户代码中处理 附加信息:从’System.Data.Entity.Spatial.DbGeometry’上的’WellKnownValue’获取值时出错。 内部exception似乎指向WellKnownValue为空的事实,但它不是,因为我检查了发送到服务器的JSON,然后将其发送到Breeze ContextProvider并使用SaveChanges方法保存。 { “entities”: [ { “TableKey”: 2, “CaseName”: “Mikhail Lermontov”, “StartDate”: “2013-06-11T00:00:00Z”, “EndDate”: null, “IsCurrent”: true, “SRID”: 109, “Shape”: { “$id”: “2”, “$type”: “System.Data.Entity.Spatial.DbGeometry, EntityFramework”, “Geometry”: { “$id”: “3”, “$type”: “System.Data.Entity.Spatial.DbGeometryWellKnownValue, EntityFramework”, “CoordinateSystemId”: 2193, “WellKnownText”: “POLYGON ((1695943 5462665, 1713098 5462665, 1713098 5449659, 1695943 5449659, 1695943 5462665))” […]