当John Papa发布了关于MVC 4 Web API应用的this新SPA模板时,我对breeze.js非常好奇。
我目前正在开发一个应用程序,该应用程序使用DevForce 2012作为实体数据模型,并且正在搜索此模型如何支持breeze.js。
我只想构建一个简单的MVC 4项目,该项目能够从表中获取数据。
我认为可能是,控制器的样子:
[BreezeController]
public class TodosController : ApiController
{
// ~/api/todos/Metadata
[HttpGet]
public string Metadata()
{
return // that's where I surely need help,
// because breeze.js really needs this, I think
}
// ~/api/todos/CustomEntities
[HttpGet]
public IQueryable<CustomEntity> CustomEntities()
{
var manager = MyStaticContext.EntityManager;
return new EntityQuery<CustomEntity> {EntityManager = manager};
}
}
实际上是否可以使用breeze.js运行DevForce 2012?我现在谷歌搜索相当一段时间,但很少得到体面的搜索结果。如果没有,我很抱歉,但文档可能缺少这个,但是?
请跟我一起去。我是MVC和Html5 / JavaScript的新手。我真的很感激能与之相提并论。答案 0 :(得分:1)
使用Breeze重构DevForce的最佳方法是将现有的Entity Framework模型共享(或复制)到Breeze。正如您在文档中看到的那样,然后使用Breeze EFContextProvider包装Entity Framework上下文以将其公开为WebAPI端点: http://www.breezejs.com/documentation/web-api-controller
由于各种技术原因,Breeze不直接使用DevForce模型,但您可以通过继承EFContextProvider(http://www.breezejs.com/documentation/custom-efcontextprovider)来访问等效的保存拦截器,并且可以在子类ApiController中执行查询拦截({{ 3}})。
另请注意,Breeze支持EF的复杂类型,但尚不支持EF继承或EF多对多映射,没有有效负载。 编辑:从v1.3.1开始,Breeze现在支持继承。
希望这有帮助!