我有一个 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 模型逻辑分开编写。一些示例参数始终类似于 parameters
和 forceRemote
。这个想法是,当您执行查询时,您可以决定是访问服务器还是本地查询。一个简单的例子 -
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/