Estoy intentando devolver el resultado de una consulta de entidad de marco en mi propia clase dto, al mismo tiempo que mapeando mi enum TradeType.Enum de mapeo de marco de entidad: el valor especificado no es una instancia del tipo 'Edm.Int32' Nombre del parámetro: valor
estoy consiguiendo el error siguiente
El valor especificado no es una instancia de tipo Nombre del parámetro 'Edm.Int32': valor
alguna idea de cómo solucionarlo o una solución?
Gracias
public IEnumerable<Trade> GetLiveTrades(string routeName)
{
return _entities.Price.Where(p => p.StatusCode.Equals("A") && p.Period.PeriodYear <= DateTime.Now.Year+1 && p.Route.RouteCode.Equals(routeName)).
Select(p => new Trade
{
Volume = (long) (p.Volume ?? 100),
TradeType = (p.PriceTypeCode.Equals("O") ? TradeType.Seller : TradeType.Bidder),
Price = p.Price1,
TenorStartDate = p.Period.PeriodStartDate.Value,
TenorEndDate = p.Period.PeriodStartDate.Value,
TradeId = p.ID
}).ToList();
}
public class Trade
{
public long Volume { get; set; }
public TradeType TradeType { get; set; }
public double Price { get; set; }
public DateTime TenorStartDate { get; set; }
public DateTime TenorEndDate { get; set; }
public Guid TradeId { get; set; }
}
Gracias, solucioné el problema cambiando mi dto para tener una variable interna que almacenaba la versión de texto original de PriceTypeCode y expuse una propiedad pública que realiza un cambio para devolver la enumeración correcta. ¡Un poco hacky pero dio los resultados deseados! :). Saludos por tus respuestas, usaré tu método en el futuro. – Mantisimo
Gracias, esto me ayudó a resolver mi problema, cambié mi código a ToString() la enumeración en una variable local fuera de la consulta y eso lo resolvió para mí. – John
Hola @John. Su comentario llamó mi atención sobre este post nuevamente y me instó a agregar una idea de último momento. –