1

当 John Papa 发布有关MVC 4 Web API 应用程序新 SPA 模板时,我对微风.js 非常好奇。

我目前正在开发一个应用程序,它使用 DevForce 2012 作为实体数据模型,并正在寻找这个模型如何支持微风.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};

    }
}

是否真的可以使用微风.js 运行 DevForce 2012?我现在在谷歌上搜索了很长时间,但很少产生像样的搜索结果。如果没有,我很抱歉,但是文档可能缺少这个吗?

4

1 回答 1

1

使用 Breeze 重构 DevForce 的最佳方法是将现有的实体框架模型共享(或复制)到 Breeze。正如您可能在文档中看到的那样,然后您使用 Breeze EFContextProvider 包装实体框架上下文,以将其公开为 WebAPI 端点: http ://www.breezejs.com/documentation/web-api-controller

由于各种技术原因,Breeze 不直接使用 DevForce 模型,但您确实可以通过子类化 EFContextProvider ( http://www.breezejs.com/documentation/custom-efcontextprovider ) 访问等效的保存拦截器,并且可以执行查询拦截在您的子类 ApiController ( http://www.breezejs.com/documentation/web-api-controller ) 中。

另请注意,Breeze 支持 EF 的复杂类型,但尚不支持 EF 继承或没有负载的 EF 多对多映射。编辑:从 v1.3.1 起,Breeze 现在支持继承。

希望这可以帮助!

于 2013-02-20T22:24:06.770 回答