質問: 2つのストアドプロシージャを呼び出す.NET Core Web APIサービスがあります(他には何もありません)。 .NET Coreでこれらの呼び出しを実行する方法を知りたいです。 最初は、データベース接続にEntity Framework Coreを使用することを考えていました。 EF Coreは、データベースへの接続(接続プールなど)に関する多くのハードビットを処理することがわかっているため、検討していました。 ただし、このサービスにはかなり厳密なパフォーマンス要件があります。高速で、かなり大量の通話トラフィックを処理できる必要があります。正直に言うと、EF Coreはおそらくそれを処理できます。しかし、EF Coreを追加すると、非常に単純なものに多くの複雑さが追加されているように感じられます。 ですから、.NET Coreには、安全でプールされた高トラフィックトレラントな方法でSQL Serverデータベースに接続するための他のオプションはありますか? 関連する場合のいくつかのサイドノート: * 私のサービスには2つの操作があります * 各操作は3つの文字列と整数を受け取り、2つのストアドプロシージャの1つを呼び出します * 両方のタイプの呼び出しにtrueまたはfalseのみを返します(ストアドプロシージャから`bit`として返され`bit` )
回答: これは私が.NET Coreでプロシージャを呼び出す方法です ``` try { using (var db = new DBEntities()) { var result = db.Database.SqlQuery("exec uspDataOfEmployee {0} , {1}", EmployeeId , Convert.ToDateTime(month).ToString("yyyy-MM-dd")).ToList(); return result; } } catch (Exception ex) { Logger.Instance.Error(ex, "Exceptio while calling procedureName( method.", EmployeeId.ToString()); throw; } ``` **上記のコードを使用している場合の利点のリスト...** 1. この呼び出しを非同期にするのは簡単です。 2. パラメータを渡すのは簡単 3. カスタムモデルとのマッピングが簡単 4. プロシージャを登録するために複合型を生成する必要はありません。また、EDMXファイルでの戻り型です。 5. 明白で速い応答時間。