方法X没有支持的SQL转换 - 布尔值和日期时间

时间:2011-11-03 13:41:00

标签: c# linq-to-sql

是否有人建议如何使LINQ to SQL支持此功能?

public bool IsEnabled()
{
    return !this.Disabled && 
           ((!this.EnabledFrom.HasValue || this.EnabledFrom < DateTime.Now) && 
            (!this.EnabledTo.HasValue || this.EnabledTo > DateTime.Now));
}

已禁用是bool,EnabledFrom和EnabledTo是DateTime?和所有数据库字段。

1 个答案:

答案 0 :(得分:6)

IsEnabled方法返回表达式。

见这里:http://www.atrevido.net/blog/2007/09/05/Calling+Custom+Methods+In+LINQtoSQL.aspx

下面的内容(未经测试):

static Expression<Func<Account, bool>> IsEnabled = a =>
    !a.Disabled && 
    ((!a.EnabledFrom.HasValue || a.EnabledFrom < DateTime.Now) && 
     (!a.EnabledTo.HasValue || a.EnabledTo > DateTime.Now));