客户端breeze.js在模型上使用enum属性时出现异常



我在breeze.js中唯一能找到的关于枚举支持的是这个关于uservoice的功能建议,它最近被标记为在0.82中关闭。我用的是最新的,0.84.3.

更新:我首先在EF 5.0.0和。net 4.5中使用代码。当启动应用程序和微风请求元数据时,EF创建空数据库,我的enum属性在数据库中作为int,所以那部分是ok的。

然而,当我添加一个枚举属性到我的模型,我得到异常时,微风试图解析元数据:

Uncaught Error: Unable to locate an 'Type' by the name: ItemType:#TestApp.Models breeze.debug.js:5051
getTypeFromMap breeze.debug.js:5051
ctor.getEntityType breeze.debug.js:5028
ctor._updateProperty breeze.debug.js:6056
ctor._fixup breeze.debug.js:6133
ctor._fixup breeze.debug.js:6132
ctor.addEntityType breeze.debug.js:4702
convertFromODataEntityType

这是我的模型(简化):

public enum ItemType
  {
    Ordered,
    Approved,
    Misc
  }
public class Item 
  {
    public long Id { get; set; }
    public ItemType Type { get; set; }
  }

我哪里出错了?是否有带enum的工作样品?

我只是尝试将您的ItemType enum添加到我们的模型之一(微风DocCode示例中的ToDo模型)而没有问题。

我不知道你遇到了什么。有两个建议,

1)尝试更新(hack)在breeze样例zip中附带的DocCode样例,以使用您的ItemType enum(详细信息如下),然后运行任何基本的ToDo测试。

// In DocCode/Models/ToDoItem.cs
namespace Todo.Models 
{
    public class TodoItem 
    {
        public int Id { get; set; }                     // 42
        [Required, StringLength(maximumLength: 30)]     // Validation rules
        public string Description { get; set; }         // "Get milk"
        public System.DateTime CreatedAt { get; set; }  // 25 August 2012, 9am PST
        public bool IsDone { get; set; }                // false
        public bool IsArchived { get; set; }            // false
        // YOUR ENUM PROPERTY
        public ItemType Type { get; set; }
    }
    // YOUR ENUM TYPE
    public enum ItemType {
      Ordered,
      Approved,
      Misc
    }
}
// In DocCode/Models/ToDoDatabaseInitializer
private static TodoItem CreateTodo(string description, bool isDone, bool isArchived)
{
    _baseCreatedAtDate = _baseCreatedAtDate.AddMinutes(1);
    return new TodoItem
    {
        CreatedAt = _baseCreatedAtDate,
        Description = description,
        IsDone = isDone,
        IsArchived = isArchived,
        // YOUR ENUM PROPERTY
        Type = ItemType.Ordered
    };
}

2)发送给我(Jay Traband)一个你项目的精简版本到breeze@ideablade.com.

相关内容

  • 没有找到相关文章

最新更新