1

Breeze.js での enum のサポートについて私が見つけた唯一のことは、最近 0.82 でクローズドとしてマークされた uservoice に関するこの機能の提案です。現在最新の0.84.3を使用しています。

更新: EF 5.0.0 と .net 4.5 で最初にコードを使用しています。アプリケーションを起動してそよ風がメタデータを要求すると、EF は空のデータベースを作成し、私の enum プロパティは int としてデータベースにあるので、その部分は問題ありません。

ただし、列挙型プロパティをモデルに追加すると、breeze がメタデータを解析しようとしたときに例外が発生しました。

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; }

  }

どこで間違いを犯していますか?列挙型の作業サンプルはありますか?

4

1 に答える 1

2

ItemType 列挙型をモデルの 1 つ (そよ風 DocCode サンプルの ToDo モデル) に問題なく追加しようとしました。

あなたが何に遭遇しているのかわかりません。そこで、2つの提案、

1) Breeze サンプル zip 内にある DocCode サンプルを更新 (ハック) して、ItemType 列挙型 (詳細は以下) を使用し、基本的な 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.

于 2013-01-14T19:18:00.653 に答える