Как я могу ограничить значения, разрешенные с Entity Framework? - PullRequest
0 голосов
/ 02 мая 2011

Я использую Entity Framework.

У моего объекта есть DayOfWeek свойство типа string.

Как я могу ограничить его значения только "воскресенье", "понедельник", "вторник" и т. Д.

1 Ответ

2 голосов
/ 02 мая 2011

Простого пути не существует.В случае API ObjectContext вы можете переопределить SaveChanges в вашей реализации ObjectContext:

public override int SaveChanges(SaveOptions options)
{
    var entities = ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified)
                                     .Select(e => e.Entity)
                                     .OfType<YourEntityType>();

    foreach (var entity in entities)
    {
        // Here you can validate your property - entity is of your type
    }

    return base.SaveChanges(options);
}

Проблема в том, что EF не поддерживает пользовательские скалярные типы и не поддерживает перечисления вслучай замены ваших значений на int.

Другой способ - принудительно выполнить это с помощью пользовательской проверки в бизнес-логике.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...