0

さて、コントローラーがSQLについて知る必要はないと思います。

着信 null 値を自分のアクションに変換して MinValue に変更したい

var salesFrom = Model.SalesFrom ?? SqlDateTime.MinValue;

しかし、この行をコントローラー アクションに追加すると、コントローラーは SQL 固有の実装になります。だから、私はそれが私のサービスに属していると思った....しかし、それは実装によって異なるステートメントであるため、私はそれを私の一部にしたくありませんIService

最後に、DataContext に追加しようと思いましたが、私のコントローラーは Context に直接アクセスしません....

4

3 に答える 3

1

私は EF についてあまり知りませんが、これは良い習慣だと思います。

私は自分のモデル/コントローラーを完全に DB にとらわれないようにしたいと思っています。

私があなただったらどうしますか:

  1. SQLDateTime を使用する代わりに、コントローラー/モデル (mvc) でDateTimeのみを使用します。
  2. 必要な場合は、後で別のレイヤー (DAO など) で変換を行います (たとえば、nHibernate を使用し、nHibernate がそれを処理します。DateTime のみを使用します)。

幸運を

于 2013-04-09T19:05:15.663 に答える
0

OnModelCreatingDbContext のオーバーライドを試し、Fluent API を使用して生成された列の DB デフォルト値を指定できます。

于 2013-04-09T19:04:59.577 に答える
0

SalesFromEF Code-First を使用しているため、モデル クラスのプロパティの既定値を に設定しますSqlDateTime.MinValue。それとも、これも SQL 固有でしょうか?

于 2013-04-09T18:54:14.637 に答える