2011-10-31 10 views
2

次の問題があります。私のデータベーステーブルでは、ItemDaysNextという名前のcoloumを持っています(coloumnは整数です)。値は、これまでnullであり、このokです....正しいSQLクエリ

私は、ソート値の後に使用このcoloumnしたいと思います...

このsatementは正常に動作します:

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; 

しかし、私だろうが値をバインドすることができるので、ListBoxの後に並べ替えることができるので、 "(next2 - today).Days"の結果をItemDaysNextに使用すると便利です。

このステートメントは機能しません。エラーメッセージ(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 }; 

どうすれば正しいクエリを作成できますか?

すべての回答をお待ちしています。

答えて

0

あなたの問題に似た何かを複製できる唯一の方法は、 "ItemDate"列をNULL可能にし、データベースにNULL値を入れることです。これは、誕生日をnullのときに別のものに割り当てることによって簡単に修正されます。行3 let birthday = item.END_DATE ?? DateTime.MaxValue

関連する問題