entity-framework - 用于 UI 开发的具有虚假数据源的应用程序

标签 entity-framework angularjs breeze

我有一个 Web 应用程序,其中 Angular/Breeze 客户端调用 Breeze Web API,该 API 使用 Entity Framework 代码优先模型。我有一个数据上下文(Angular 服务)负责与服务器的所有通信。

我想将服务器开发与客户端开发完全分开,这样开发人员甚至不需要在他们的系统上安装.NET。我希望该解决方案在创建假货时只需要很少的编码,因为应用程序经常更改,并且我不想每次实现更改时都必须重写假货。我的数据库中有一堆测试数据,我希望在客户端上可用。

实现这一目标的好方法(标准方法?)是什么?

最佳答案

只需创建模拟即可。如果您不愿意,您甚至不必进行 RESTful 调用,只需让您的服务决定是访问服务器还是从缓存中提取数据并在启动时在本地加载缓存 -

function loadMocks (manager) {
    var personMockOne = manager.createEntity('Person', { id: 1, firstName: 'John', lastName: 'Smith' });
    var companyMockOne = manager.createEntity('Company', { id: 1, name: 'Acme Inc.' });
    companyMockOne.employees.push(personMockOne);
}

http://pwkad.wordpress.com/2014/02/02/creating-mocks-with-breeze-js/

展开...

执行此操作需要一些额外的设置。我个人总是通过带有参数的服务将查询与 Controller / View 模型逻辑分开编写。一些示例参数始终类似​​于 parametersforceRemote。这个想法是,当您执行查询时,您可以决定是访问服务器还是本地查询。一个简单的例子 -

function queryHereOrThere (manager, parameters, forceRemote) {
    var query = breeze.EntityQuery().from('EntityName').using(manager);
    query.where(parameters);

    if (!forceRemote) {
        query.executeQueryLocally();
    } else {
        query.executeQuery();
    }
}

关于entity-framework - 用于 UI 开发的具有虚假数据源的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23507140/

相关文章:

entity-framework - Entity Framework 生成的类不在我需要的命名空间中,是否有一种方法可以更改它使用的命名空间而不重新生成?

c# - HasRequired 和 WithOptional 不生成一对一关系

.net - 在 EF Model First 设计中添加索引

ios - ionic 本地存储不会持久存在于设备上

angularjs - 如何在新行上打印输出?

angularjs - Laravel 4 作为 AngularJS 的 RESTful 后端

javascript - 主干集合上的 findWhere 仅返回一个结果

c# - 具有上下文的模拟通用存储库

javascript - 按父实体和虚线路径列出的实体列表

c# - 带有导航属性的 BreezeJS 查找