/ / Чи вітер надає підтримку для роботи з c # Enums - переживає, вітерець

Бриз забезпечує підтримку для роботи з C # Енуси, вітер

Я хочу заселити мої спадні місцями за допомогою вітру. Це показує перерахунок метаданих вітерця, але я не знайшов способу його споживання. Чи надає вітерець підтримка, поки не працюють c # enums?

Відповіді:

0 для відповіді № 1

Якщо ви використовуєте стандартний сервер Breeze WebApiтоді значення перерахунку повинні зменшуватися як рядки і їх можна зберігати назад на сервері також як рядки. З цього вікна реалізація сервера Breeze WebApi за замовчуванням автоматично перетворить рядки в правильні значення перерахунку в обох напрямках.

(Примітка: це не буде працювати з сервером, що використовує поточного постачальника MS WebApi / OData, оскільки MS ще не підтримує переліків з цим провайдером - MS підтримуватиме це у своєму майбутньому версії 4.0.)

Наприклад, якщо припустити, що у вас був enum на стороні сервера, який виглядав так:

public enum RoleType {
Guest = 0,
Restricted = 1,
Standard = 2,
Admin = 3
}

спільно з класом "Role", який мав властивість "RoleType", тоді працює наступний запит:

    var query = new EntityQuery("Roles").where("RoleType", "==", "Restricted");
myEntityManager.executeQuery(query).then(...);

Так само, якби ви хотіли змінити тип RoleType для заданої ролі, ви могли б

    role.RoleType = "Standard"; // assuming breeze backingStore adapter.
myEntityManager.saveChanges();

0 для відповіді № 2

Якщо ви генеруєте метадані вітер в офлайнітоді ви можете отримати все визначення Enums у самих метаданих, і ви можете створити словник JS (пов'язаний масив) для заселення всіх типів enum та їх визначень.

Ну, моя ситуація полягала в тому, що я використовував NancyFx (No EF) + Breeze + AngularJS для свого веб-проекту. Я генерував метадані в режимі офлайн і зберігав їх у файлі metadata.js.

Після створення EntityManager я вилучив визначення перерахунків у словнику JS, який я згодом використовував для прив'язки спаду, відображення відповідних рядків перерахувань тощо.

Витяг Енума Визначення та зберігати в JS словнику

        JSON.parse(window.app.metadata).schema.enumType.forEach(function (enumType) {
var newEnumValues = [];

enumType.member.forEach(function (enumValue) {
var newEnumValue = { id: enumValue.value, name: enumValue.name };
newEnumValues.push(newEnumValue);
});

enumDictionary[enumType.name] = newEnumValues;
});

Метод отримання значення enum на основі імені enum та valueid

        function GetEnumDictionaryValue(enumName, enumValueId) {
var result = null;
enumDictionary[enumName].some(function (enumValue) {
if (enumValue.id == enumValueId) {
result = enumValue.name;
return;
}
});

return result;
}

Прив’язування значень до спадання Тепер для прив'язки спадних файлів просто зателефонуйте enumDictionary [] і збережіть результат у змінній контролера. Я використовував Angular JS, тому я використовував код нижче на html-сторінці

      <select ng-options="type.id as type.name for type in <VariableName>"
></select>