方法X不支持转换为SQL -布尔值和日期时间

本文关键字:布尔值 日期 时间 SQL 不支持 转换 方法 | 更新日期: 2023-09-27 18:13:37

有没有人建议如何使这个函数支持LINQ到SQL?

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

Disabled是bool, EnabledFrom和EnabledTo是DateTime?以及所有数据库字段

方法X不支持转换为SQL -布尔值和日期时间

让你的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));