C# 如何开始使用breeze.js和DevForce 2012?
当John Papa发布MVC4 Web API应用程序的新SPA模板时,我对breeze.js非常好奇 我目前正在开发一个应用程序,它使用DevForce 2012作为实体数据模型,并正在搜索该模型如何支持breeze.js 我只是想构建一个简单的MVC4项目,它能够从表中获取数据 我想这可能是控制器的样子:C# 如何开始使用breeze.js和DevForce 2012?,c#,asp.net-mvc,breeze,devforce,C#,Asp.net Mvc,Breeze,Devforce,当John Papa发布MVC4 Web API应用程序的新SPA模板时,我对breeze.js非常好奇 我目前正在开发一个应用程序,它使用DevForce 2012作为实体数据模型,并正在搜索该模型如何支持breeze.js 我只是想构建一个简单的MVC4项目,它能够从表中获取数据 我想这可能是控制器的样子: [BreezeController] public class TodosController : ApiController { // ~/api/todos/Metadata
[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};
}
}
[BreezeController]
TodosController的公共类:ApicController
{
//~/api/todos/Metadata
[HttpGet]
公共字符串元数据()
{
return//那是我需要帮助的地方,
//因为breeze.js真的需要这个,我想
}
//~/api/todos/CustomEntities
[HttpGet]
公共IQueryable自定义实体()
{
var manager=MyStaticContext.EntityManager;
返回新的EntityQuery{EntityManager=manager};
}
}
是否可以使用breeze.js运行DevForce 2012?我在谷歌上搜索了很长一段时间,但很少有像样的搜索结果。如果没有,我很抱歉,但是文档中可能缺少这一点吗?使用Breeze重构DevForce的最佳方法是将现有的实体框架模型共享(或复制)给Breeze。正如您在文档中看到的,然后使用Breeze EFContextProvider包装实体框架上下文,将其公开为WebAPI端点: 出于各种技术原因,Breeze不会直接使用DevForce模型,但您可以通过子类化EFContextProvider()访问等效的save拦截器,并可以在子类化ApiController()中执行查询拦截 还要注意的是,Breeze支持EF的复杂类型,但还不支持EF继承或EF多对多映射(没有有效负载)编辑:从v1.3.1开始,Breeze现在支持继承
希望这有帮助 用Breeze重构DevForce的最佳方法是将现有的实体框架模型共享(或复制)给Breeze。正如您在文档中看到的,然后使用Breeze EFContextProvider包装实体框架上下文,将其公开为WebAPI端点: 出于各种技术原因,Breeze不会直接使用DevForce模型,但您可以通过子类化EFContextProvider()访问等效的save拦截器,并可以在子类化ApiController()中执行查询拦截 还要注意的是,Breeze支持EF的复杂类型,但还不支持EF继承或EF多对多映射(没有有效负载)编辑:从v1.3.1开始,Breeze现在支持继承
希望这有帮助 如果我需要帮助的话,我会回去的。但这应该足够开始了。谢谢!另一个问题。我试图在控制器中创建
EFContextProvider contextProvider
字段MyCustomData
继承自IdeaBlade.EntityModel.EntityManager
。我添加了一个无参数的ctor,用默认参数调用空的基ctor。但是只要breeze.js(?)请求contextProvider.MetaData()
,就会抛出InvalidCastException
MyCustomData
无法转换为DbContext
。如何解决此问题?MyCustomData
必须是DbContext
或ObjectContext
。它不能是DevForceEntityManager
。您可以为DevForce服务器端模型定义(并且经常定义)一个属性。@JayTraband您能解释一下“还不支持EF继承或EF多对多映射而没有有效负载”是什么意思吗?@daveywc-继承现在受支持。这个问题更多地讨论了Breeze和实体框架()中的多对多。基本上,映射表需要一个显式实体,并通过两个一对多关联进行导航。但这应该足够开始了。谢谢!另一个问题。我试图在控制器中创建EFContextProvider contextProvider
字段MyCustomData
继承自IdeaBlade.EntityModel.EntityManager
。我添加了一个无参数的ctor,用默认参数调用空的基ctor。但是只要breeze.js(?)请求contextProvider.MetaData()
,就会抛出InvalidCastException
MyCustomData
无法转换为DbContext
。如何解决此问题?MyCustomData
必须是DbContext
或ObjectContext
。它不能是DevForceEntityManager
。您可以为DevForce服务器端模型定义(并且经常定义)一个属性。@JayTraband您能解释一下“还不支持EF继承或EF多对多映射而没有有效负载”是什么意思吗?@daveywc-继承现在受支持。这个问题更多地讨论了Breeze和实体框架()中的多对多。基本上,您需要为映射表提供一个显式实体,并通过两个一对多关联进行导航。