エンティティ・フレームワーク問合せの結果を自分のdtoクラスに戻そうとしています。列挙型TradeTypeをマッピングしています。Entity Frameworkマッピング列挙型:指定された値が 'Edm.Int32'型のインスタンスではありません。パラメータ名:値
私は「Edm.Int32」パラメータ名型のインスタンス次のエラー
指定された値がされていません取得しています:値
修正するためにどのように任意のアイデアや回避策?
おかげEntity Frameworkの投影からの投影で
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; }
}
ありがとうございました。元のテキストバージョンのPriceTypeCodeを格納した内部変数を持つようにdtoを変更してから、適切な列挙型を返すようにスイッチを実行するパブリックプロパティを公開しました。少しハッキーでしたが、それは望ましい結果をもたらしました! :)。あなたの答えを応援、私はあなたの方法を使用します。 – Mantisimo
これは私の問題を解決するのに役立ちました。コードをToString()のenumをクエリ外のローカル変数に変更して解決しました。 – John
こんにちは@ジョン。あなたのコメントはこの投稿に私の注意を引いてくれました。 –