保存breezejs实体,其中填充了子/相关实体以保存在单个事务范围中

时间:2014-11-10 03:25:19

标签: json entity-framework knockout.js asp.net-web-api breeze

我试图保存一个breezejs实体,其中包含一系列实体,一系列选择'如果你愿意的话。

粗略地像

public class Form{
  public class Choice{
    public string Name {get;set;} 
    public bool Selected {get;set;}
  }
  [Key]
  public Guid Id{get;set;}
  public ICollection<Choice> Choices{get;set;}
}

当breezejs将更改保存到实体时,它会将它们分批到各自的odata控制器,一个用于&#34; Form&#34;和#34;选择&#34;。这样会很好,但我想/需要在服务器上的事务中进行更改 - 所以理想情况下我可以在Form odata控制器中获得一个Form模型,其中包含一个Choices集合。然后我可以在单个事务范围内进行更改。

我花了几个小时挖掘,但我无法找到一种方法来要求breezejs嵌入&#39;选择&#39;选择&#39;在&#39;表格内#39;使用完全填充的表格&#39;来获得一个帖子。模型。

有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

来自MS的当前服务器端OData控制器实际上不支持涉及多个实体类型保存的事务。 (这是一个已知的MS问题,但它们解决它的速度很慢。)

但是,breeze的标准WebApi控制器确实处理涉及多个实体类型保存的事务。如果您使用EF,两者之间的过渡相对简单。

请参阅: http://www.getbreezenow.com/documentation/odata-vs-webapi

http://www.getbreezenow.com/documentation/aspnet-web-api