亚音速:不支持会员'天'

时间:2009-12-30 06:18:08

标签: subsonic

我使用Subsonic(SimpleRepository)来查询我的SQL 2008数据库。我正在尝试编写一个查询,它将计算两个字段之间的天数,并返回差异小于给定数字的记录。但是,我得到“不支持成员'天'”错误。

有人可以提出替代查询吗?

这是我正在尝试运行的查询:

var repository = new SimpleRepository("MyConnection", 
                              SimpleRepositoryOptions.None);
var query = (from c in repository.All<Data.Customer>()
            where c.LastSynchronizedOn == null || 
                  (c.LastSynchronizedOn - c.CreatedOn).Days <= 7)
            select c).Distinct();

编辑:

我试过了:

(c.LastSynchronizedOn == null || (c.LastSynchronizedOn.Value - c.CreatedOn).Days <= 7)

我得到同样的例外:不支持成员'天'

我也尝试过:

(c.LastSynchronizedOn == null || ((c.LastSynchronizedOn - c.CreatedOn) > new TimeSpan(7, 0, 0, 0)))

我得到:无法将参数值从TimeSpan转换为String。

1 个答案:

答案 0 :(得分:0)

请检查字段LastSynchronizedOnCreatedOn的数据类型,因为问题与SubSonic无关,但.Net正在抱怨(如果这是正确的方式),因为表达式{{1可能不会返回(c.LastSynchronizedOn - c.CreatedOn)对象。

编辑: - 根据您的评论,请尝试此

DateTime

编辑(2):陈述

(c.LastSynchronizedOn.Value - c.CreatedOn).Days

返回布尔值(true或false)

试试这个:

(c.LastSynchronizedOn == null || 
  ((c.LastSynchronizedOn - c.CreatedOn) > new TimeSpan(7, 0, 0, 0)))