次のスキーマを持つMySqlテーブルがあります
Field Type Null Key Default Extra
id int(11) NO PRI NULL auto_increment
Date date YES MUL NULL
Time time(6) NO MUL NULL
Exch varchar(45) YES MUL NULL
ProdType varchar(45) YES NULL
Product varchar(45) YES NULL
Contract varchar(45) YES NULL
Direction varchar(45) YES NULL
Price decimal(10,4) YES NULL
Quantity int(11) YES NULL
流暢なモデル:
public class Trade
{
public virtual int Id { get; set; }
public virtual DateTime Date { get; set; }
public virtual DateTime Time { get; set; }
public virtual string Contract { get; set; }
public virtual string Direction { get; set; }
public virtual double Price { get; set; }
public virtual int Quantity { get; set; }
}
およびマッピング:
public TradeMap()
{
Id(x => x.Id).Column("id");
Map(x => x.Date).Column("Date");
Map(x => x.Time).Column("Time").CustomType("timestamp");;
Map(x => x.Contract).Column("Contract");
Map(x => x.Direction).Column("Direction");
Map(x => x.Price).Column("Price");
Map(x => x.Quantity).Column("Quantity");
Table("ts");
}
次のコードでORMをテストしています
DateTime dayStart = Convert.ToDateTime("11:31:00.000000");
DateTime dayEnd = Convert.ToDateTime("11:32:00.000000");
IQueryable<Trade> result = from ts in repo.GetList<Trade>()
where ts.Date == new DateTime(2013,7,1)
&& ts.Time >= dayStart
&& ts.Time <= dayEnd
&& ts.Contract == "Sep13"
select ts;
foreach (var l in result)
{
DateTime k = l.Time;
}
と
Trade result = repo.GetList<Trade>().FirstOrDefault();
しかし、私は内部例外を取得し続けます
{"Unable to cast object of type 'System.TimeSpan' to type 'System.IConvertible'."}
時間マッピングをに変更して、これを解決しようとしました
Map(x => x.Time).Column("tsTime").CustomType("timestamp").CustomSqlType("TIME(6)").Nullable();
Map(x => x.Time).Column("tsTime").CustomSqlType("TIME(6)");
しかし、何も機能しません