あるデータベースの、ある表の、ある列(datetime型)に、既定値で日付(getdate)を埋める設定をしました。(NULLは不可)
この既定値をうまく利用するには、どこでどのような設定や操作を行う必要がありますか?
私は、
1)DBを元に、EDM(Entity Data Model)を作成しました。そして、WCF Data Service を追加し構成しました。
2)クライアントアプリケーションを作成し、サービスの参照を行い、データグリッドから操作するように作成しました。
3)ボタンを押すと、対象エンティティのSaveChangesメソッドを実行します。
実行すると、更新などについては問題ありませんでした。
しかし、挿入については、うまくいきません。(DBは更新されません)クライアントは500(Internal Error)と判定しています。
直接EDMを利用するWinFormアプリで試してみると、
{"datetime2 データ型から datetime データ型への変換の結果、範囲外の値になりました。
ステートメントは終了されました。"}
と、日付の変換でエラーとなっているようです。
クライアントからは、日付(とIdentity列であるキー)は入力しません。
サービス側のモデルデザイナで、対象の日付プロパティから、StoredGenratedePatternをIdentityにしてみましたが、変わりませんでした。
(LINQ to SQL ではこんな感じで簡単に既定値を利用してくれた記憶があるのですが・・)
エンティティ側で何か処置が必要だとは思うのですが・・・
WCF Data Service を調べていて、うまくいう方法を見つけられなかったので、投稿しました。
(というか、EDMの使い方の問題なので、このフォーラムは不適当かもしれませんが。)
よろしくお願いします。
DB:SQL Server 2008 Express
IDE:VS2010
Framework Version:4
スタンドアロン環境です。
K.Oumi