-1

我正在尝试使用实体框架从数据库中获取双精度,但出现异常,下面是我的代码

public static double GetFxRate(DateTime dt)    
{
  DBEntities dbe = new DBEntities ();
  var fx_rate = dbe.MyTable
       .Where (s => s.Currency == "aaaaaaaaa" && s.Date == dt)
       .Select (s => (s.ask + s.bid)/2);
  return Convert.ToDouble(fx_rate);
}

此代码在最后一行生成异常

附加信息:Impossible d'effectuer un cast d'un object de type 'System.Data.Entity.Infrastructure.DbQuery 1[System.Nullable1[System.Double]]' en type 'System.IConvertible'

请问我该如何纠正?

4

1 回答 1

-1

尝试

public static double GetFxRate(DateTime dt)    
{
  DBEntities dbe = new DBEntities ();
var fx_rate = dbe.MyTable.Where (s => s.Currency == "aaaaaaaaa" && s.Date == dt).Select( s => (s.ask + s.bid)/2).FirstOrDefault();
return Convert.ToDouble(fx_rate);
}

问题是Select返回一个IQueryable<Double>所有可能的结果,但你只期待一个结果,所以FirstOrDefault应该只得到一个结果。

于 2018-06-13T16:22:21.340 回答