sql >> データベース >  >> RDS >> PostgreSQL

Npgsql4.0のパラメーターとヌル値

    新しいジェネリックパラメータAPIには確かに問題があります-通常の.NETnullを受け入れる必要があります (DBNull.Valueではありません )、この問題 を開きました これを追跡するために、4.0.3で修正される予定です。

    ドキュメントノート として つまり、汎用APIの要点は、Valueの使用を避けることです。 タイプobjectのプロパティ 。一般的なNpgsqlParameter<int>を使用する場合 ただし、Valueを割り当てます 、intはボックス化され、APIの目的を無効にします。 TypedValueに割り当てる必要があります 、タイプはint 箱に入れません。これが、DBNull.Valueを割り当てることができない理由でもあります。 null値を示します(これは別の.NETタイプです)。

    この新しい汎用APIを使用する必要があるかどうかに関する注意事項:

    • 多くの値型を記述している場合(例:intDateTime ...)これにより、すべてのボクシングの割り当てが削除されます。これが重要になるかどうかは、アプリケーションによって異なります。プロファイルは慎重に検討してください。
    • 一般的なジェネリックAPIは、コンパイル時にタイプがわかっている場合は、非ジェネリックAPIよりも常に優先されます。これにより、コンパイラは型の正しさを早期にチェックし、コードをより明確にすることができます。List<string>を使用します。 ArrayListではなく パフォーマンスが問題ではない場合でも、適切なコーディングの問題として
    • 汎用APIの主な(唯一の?)欠点は、Npgsql固有であり、コードを他のデータベースドライバーに移植できないことです(ただし、問題が存在します これ(または同様のもの)をADO.NETの一部にするため)。


    1. T-SQL:電子メール形式のチェック

    2. Access で SQL Server ストアド プロシージャからの出力パラメーターを使用する

    3. 2つの日付が別の2つの日付+MYSQlの間になかったことを確認してください

    4. Typeormはすべてのデータを返すわけではありません