我有一个带有以下架构的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 =&gt; x.Time).Column(&#34; tsTime&#34;)。CustomSqlType(&#34; TIME(6)&#34;);
但没有任何作用
答案 0 :(得分:0)
在DATE + TIME中使用单个字段。