Entity Framework не нравится перечисление, так как не может перевести его на SQL.Вам нужно будет указать способ, которым EF устанавливает базовое значение int
, или вам придется установить это значение самостоятельно, как только EF закончит с ним.
Что вы можете сделать, это выставить свойство int
для его установки.Если вы хотите, вы можете ограничить его внутренним доступом, чтобы, возможно, вызывающие абоненты не могли его видеть, но ваш код EF может (при условии, что вызывающие абоненты находятся в разных сборках, а ваш контекст - нет).Тогда у вас может быть
public class RMAInfo
{
///<summary>
/// Integer representation of RMAStatus
///</summary>
internal int RMAStatusCode
{
get { return (int)this.RMAStatus; } // you could omit the getter
set { this.RMAStatus = (RMAInfo.RMAStatuses)value; }
}
}
...
select new RMAInfo
{
...
RMAStatusCode = (int)RMAInfo.RMAStatuses.Pending
}
Чтобы избежать этого, вы в основном выберете свой статус без RMAInfo, а затем выполните итерацию по результату, чтобы установить для каждого статуса статус отложенного, полностью исключив EF.