首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Subsonic:不支持成员'Days‘

Subsonic:不支持成员'Days‘
EN

Stack Overflow用户
提问于 2009-12-30 14:18:08
回答 1查看 471关注 0票数 2

我正在使用Subsonic (SimpleRepository)来查询我的SQL2008数据库。我正在尝试编写一个查询,该查询将计算两个字段之间的天数,并返回差值小于给定数字的记录。然而,我得到一个“该成员‘天’是不受支持的”错误。

有没有人能推荐一个替代查询?

下面是我尝试运行的查询:

代码语言:javascript
复制
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();

编辑:

我试过了:

代码语言:javascript
复制
(c.LastSynchronizedOn == null || (c.LastSynchronizedOn.Value - c.CreatedOn).Days <= 7)

我得到了相同的异常:成员'Days‘不受支持

我也试过了:

代码语言:javascript
复制
(c.LastSynchronizedOn == null || ((c.LastSynchronizedOn - c.CreatedOn) > new TimeSpan(7, 0, 0, 0)))

I get:无法将参数值从TimeSpan转换为字符串。

EN

回答 1

Stack Overflow用户

发布于 2009-12-30 15:20:24

请检查字段LastSynchronizedOnCreatedOn的数据类型,因为问题与SubSonic无关,但.Net正在报告(如果这是正确的说法),因为表达式(c.LastSynchronizedOn - c.CreatedOn)可能没有返回DateTime对象。

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

代码语言:javascript
复制
(c.LastSynchronizedOn.Value - c.CreatedOn).Days

编辑(2):语句

代码语言:javascript
复制
(c.LastSynchronizedOn == null || 
  ((c.LastSynchronizedOn - c.CreatedOn) > new TimeSpan(7, 0, 0, 0)))

返回布尔值(true或false)

试试这个:

代码语言:javascript
复制
var repository = new SimpleRepository("MyConnection", 
                          SimpleRepositoryOptions.None);
var query = (from c in repository.All<Data.Customer>()
 where ((c.LastSynchronizedOn ?? 
              new DateTime(c.CreatedOn.Year, c.CreatedOn.Month, 
                          c.CreatedOn.Day).AddDays(-7)) 
     - c.CreatedOn).Days <= 7) select c).Distinct(); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1978687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档