これは達成したいことによって異なります。
私は多くの記事がそんなにコードで同じことを達成見て、流暢なAPIを使用して、
これらの記事のほとんどは、データベース・レベルでデフォルト値を追加する方法についてになります。あなたはそれをしていない。プレーンSQLを使用してテーブルに行を挿入し、CreatedDate
の値を指定しないと、エラーが発生します。
あなたがしていることで、挿入するときには必ずCreatedDate
をSQLで指定する必要があります。しかし、Entity Framework は、挿入時に常にをSQLで指定し、データベースレベルで設定されたデフォルト値はすべて無視します。
これはあなたが望むものです。デフォルト値はC#でオブジェクトを作成するときにのみ適用されます。そして、あなたがやっていることはまったく問題ありません。また、クラスのコンストラクタの中から値を設定するように記述することもできます。
@Alex Kozlowskiは良いコメントを出しますが、それはDateTime.Now
が挿入されると予想される値ではない可能性があります。どのシステムがコードを実行しているかによって異なります。タイムゾーンがサーバーのタイムゾーンと異なる場合や、時計が同期していない場合があります。
出典
2016-11-03 21:43:12
hvd
この問題は、アプリケーションサーバーが実行されている場所に基づいて生成されることがあります。ユーザーとのやりとりがあって、タイムゾーンを反映させたい場合、ユーザーはこれが機能しません。あなたのアプリケーションを知らなくても、これはあなたにとって問題ではないかもしれません。 –