У меня есть класс сущности, у которого есть свойство с базовым столбцом db с типом данных Int, однако на самом деле я хочу, чтобы это свойство было Enum. Есть ли способ указать, что это свойство возвращает Enum?





Косвенно, как так.
Лично я оставляю хранилище int общедоступным (например, как DbFoo, где свойство enum - Foo) - таким образом я все еще могу записывать лямбда-выражения для столбца для выполнения в БД, например:
where row.DbFoo == SomeConstant
Если вы не раскроете значение хранилища, вы не сможете сделать это так чисто. Вы также можете оставить его внутренним и иметь некоторые методы в контексте для фильтрации ... вот один, который я написал ранее сегодня:
public IOrderedQueryable<User> Administrators
{
get { return Users.Where(x => x.DbUserType == User.UserTypeAdmin)
.OrderBy(x => x.Name);
}
где User.UserTypeAdmin - моя внутренняя константа. В этом случае я не мог использовать выделенный подкласс, поскольку он мешал работе служб данных ADO.NET.
Я использую тот же метод, и он отлично работает. Это до тех пор, пока EFF не поддерживает перечисления по умолчанию ...