0

DayOfBirthFieldと計算フィールド「Age」を持つCustomerの単純なテーブルがあるとします。次に、Ageを使用してテーブルを検索します。

クエリにパラメータとしてAgeを渡すので、最初に頭に浮かんだのは次のとおりです。

                    query = from c in query
                    where (DateTime.Now - c.DateOfBirth).Days / 360 == Age.Value
                    select c;

ただし、データプロバイダーは「.Days」の実行方法を知らないため、これはもちろん機能しません。

それで、これを行うための適切な方法は何ですか?

4

2 に答える 2

1

解決策は、テーブル内に計算されていないフィールドを追加し、新しいレコードイベントを追加するときに、年齢を計算してデータベースに保存するだけで、後で検索できるようにすることです。

しかし、もっと良いアイデアがあるはずです!

于 2013-02-08T01:23:58.910 に答える
0

.Daysの部分を回避する方法はいくつかありますが、 Age 、プロパティについても同じ問題が発生しますが、それを回避する方法はありません。計算されたプロパティはLightSwitch自体にのみ存在するため、データプロバイダーはそれらを使用できなくなります。

計算されていないプロパティを追加し、計算された値をデータベースに保存するというStackerの提案は、私が行う方法です(RIAサービスを使用していなかった場合、これは実際にこれらの状況を処理する方法です)。

于 2013-02-08T12:41:51.603 に答える