请问如何支持这样的查询方式?

Topics: Developer Forum, Project Management Forum, User Forum
Jun 27, 2012 at 6:28 PM
Edited Jun 27, 2012 at 6:30 PM
你好,首先感谢制作如此优秀的工具。下面请教一个在使用过程中遇到的问题。
现在假设有如下类,其中 StartTime 是个字符串,但是其内部存放的是 yyyy-MM-dd HH:mm:ss 格式的时间字符串(数据库是别人设计的,没办法将这个字符改成 DateTime 类型)
using System;
using System.Collections.Generic;
using Lephone.Data.Definition;

namespace Models
{
    public class Model : DbObjectModel<Model, int>
    {
        [Length(27)]
        public string StartTime { get; set; }
    }
}
现在要对这张表查询,查询 StartTime 大于等于当前时间的数据,我使用如下语句,报错。
var models = Model.Find(o => Convert.ToDateTime(o.StartTime) >= DateTime.Now);
错误信息: The expression must be 'Column op const' or 'Column op Column'
请问这个有什么好的解决方法吗?
现今,我是使用如下方式进行处理的
var models = Model.Find(Condition.Empty);
var xxx = models.FindAll(o => Convert.ToDateTime(o.StartTime) >= DateTime.Now);
Coordinator
Jun 28, 2012 at 4:29 AM

应该可以直接进行字符串比较吧,如果linq方式不支持,可以测试ck.k的方式,不过,linq或者ck.k都不支持数据类型转换的。

如果都不行,可能就需要手写sql了。