实体框架+ Javascript客户端

时间:2012-11-11 18:43:52

标签: entity-framework backbone.js asp.net-web-api jaydata breeze

我正在尝试使用以下图层开发应用程序:

  1. 实体框架模型
  2. 数据服务(WCF或Web API,但我更喜欢Web API)
  3. Java脚本+ HTML + CSS客户端
  4. 该模型包含继承和多态集合:

    public class Master
    {
        public virtual ICollection<BaseDetail> Details { get; set; }
    }
    
    public abstract class BaseDetail
    {
        public virtual Master Master { get; set; }
    }
    
    public class Detail1 : BaseDetail { }
    public class Detail2 : BaseDetail { }
    public class Detail3 : BaseDetail { }
    

    问题是我找不到适合我需要的Java Script框架:

    1. 击退
      • 优点:
        • 非常支持继承和多态集合
        • 支持Web API&amp; JSON(我认为它比WCF&amp; oData更简单)
      • 缺点:
        • 不支持EF元数据。您必须手动复制java脚本中的模型
        • 不太了解JSON序列化的EF模型。您必须预先处理JSON
    2. Breeze.js
      • 优点:
        • 非常支持EF元数据。 JS模型即时生成
      • 缺点:
        • 不支持继承
        • 不支持WebAPI + JSON
    3. JayData
      • 优点:
        • 足够支持EF元数据
      • 缺点:
        • 似乎它支持继承,但不支持多态集合
        • 不支持WebAPI + JSON
    4. 还有其他替代JS框架吗?或许我对命名框架错了?你能提供一个例子吗?谢谢!

2 个答案:

答案 0 :(得分:6)

编辑:从v 1.3.1开始,Breeze现在支持继承。

-

关于Breeze,你是正确的,它还没有(还)支持继承。那是在Breeze路线图上你可能想要vote it up

它支持ASP.NET Web API和JSON。很奇怪您认为不是这样,因为几乎所有BreezeJS示例都是完全依赖于JSON内容类型的Web API示例。

答案 1 :(得分:2)

Microsoft Web API OData extension提供了对WebAPI的JayData支持。虽然它需要您根据控制器,路由等设置服务器端

我们非常乐意以优先级处理多态集合,我们目前正在实施OData V3。在http://github.com/jaydata上打开一个问题,以便我们就详细信息与您联系。