正确的SQL查询

时间:2011-10-31 09:32:58

标签: linq

我有以下问题。在我的数据库表中,我有一个名为ItemDaysNext的coloum(coloumn是一个整数)。该值永远为空,这没关系....

我想使用此coloumn后面的排序值......

这句话很好:

var query = from item in items
                    let today = DateTime.Today
                    let birthday = item.ItemDate
                    let next = new DateTime(today.Year, birthday.Month, birthday.Day)
                    let next2 = next < today ? next.AddYears(1) : next
                    orderby (next2 - today).Days ascending
                    select item;

但我想将“(next2 - 今天).Days”的结果用于ItemDaysNext,因为我可以更好地排序Listbox,因为我可以绑定值...

此语句不起作用,我成为编译器错误消息(InvalidCastException)

var query = from item in items
                    let today = DateTime.Today
                    let birthday = item.ItemDate
                    let next = new DateTime(today.Year, birthday.Month, birthday.Day)
                    let next2 = next < today ? next.AddYears(1) : next
                    orderby (next2 - today).Days ascending
                    select new { ItemDaysNext = (next2 - today).Days };

如何进行正确的查询????

最好的问候所有答案。

1 个答案:

答案 0 :(得分:0)

我可以复制类似于您的问题的唯一方法是使“ItemDate”列可以为空,并在数据库中放置一个空值。这可以通过在null时将生日分配给其他东西来轻松修复,例如:第3行let birthday = item.END_DATE ?? DateTime.MaxValue