この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 6572|答える: 4

[.NET Core] [実戦]。 NET/C# SQLクエリジェネレーター sqlkataベース

[リンクをコピー]
2022年10月12日 22:07:53に投稿 | | | |
要件:インターネットでsqlkataについての記事「SqlKata - Convenient and Easy to Use SQL Query Builder」を読みましたが、このプラグインは非常に便利だと感じました。テーブル名や条件を動的に設定して対応する安全なSQL文を生成でき、フロントエンドは視覚的なフォーム設定情報を通じてsqlkataを呼び出してデータベース操作を行えます。また、プログラミングやハードコーディングなしでインターフェースを設定できます。 これは、私が以前Java開発プロジェクトでjOOQを使ったのと似ています。

SqlKata

SqlKata Query Generatorは、C#で書かれた強力なSQLクエリジェネレーターです。 安全でフレームに依存しない。 Laravel Query BuilderやKnexなどのトップクエリビルダーに触発されています。

SQL Server、MySql、PostgreSql、Oracle、Firebirdをサポートする強力な動的SQLクエリジェネレーターです。

GitHubアドレス:ハイパーリンクのログインが見えます。
公式文書宛先:ハイパーリンクのログインが見えます。

SQL Serverはテストデータを準備します

まず、MSSQLデータベースを使って新しいテストテーブルを作成し、テストデータを生成します。スクリプトは以下の通りです:



新しい.NET Core 3.1コンソールアプリを作成する

以下のコマンドでNugetを使ってSqlKataおよびSqlKata.Execution、Microsoft.Data.SqlClientパッケージを追加してください:


コンソールコードは以下の通りです:

exec sp_executesql N'SELECT * [TestTableSize] から [MYKeyfield] = @p0 順序 (SELECT 0) オフセット @p1 行は WILL UP @p2 ONLY', N'@p0 NVARCHAR(4000), @p1 BIGINT,@p2 int', @p0=N'0000000088',@p1=0,@p2=10



問い合わせを試してみてください存在しない表誤差は以下の通りです:

未処理例外。 Microsoft.Data.SqlClient.SqlException (0x80131904): 無効なオブジェクト名 'Hei'.
   at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action'1 wrapCloseInAction)
   at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action'1 wrapCloseInAction)
   at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at Microsoft.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   第Microsoft.Data.SqlClient.SqlDataReader.get_MetaData()
   at Microsoft.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean isAsync, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource'1 completion, Int32 タイムアウト、Task&task、Boolean& usedCache、ブールasyncWrite、ブールinRetry、Stringメソッド)
   at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at Microsoft.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   at Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior) in /_/Dapper/SqlMapper.cs:line 1066
   at Dapper.SqlMapper.QueryImpl[T](IDbConnection cnn, CommandDefinition command, Type effectiveType)+MoveNext() in /_/Dapper/SqlMapper.cs:line 1094
   System .Collections.Generic.List'1..ctor(IEnumerable'1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable'1 source)
   at Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable'1 commandTimeout, Nullable'1 commandType) in /_/ ダッパー/SqlMapper.cs:ライン734
   at SqlKata.Execution.QueryFactory.Get[T](Query query, IDbTransaction transaction, Nullable'1 timeout)
   at SqlKata.Execution.QueryExtensions.Get[T](Query query, IDbTransaction transaction, Nullable'1 timeout)
   at SqlKata.Execution.QueryExtensions.Get(Query query, IDbTransaction transaction, Nullable'1 timeout)
   at SqlKataDemo.Program.Main(String[] args) in C:\Users\itsvse_pc\source\repos\WindowsFormsApp1\SqlKataDemo\Program.cs:line 20
ClientConnectionId:49158892-5a24-4aa8-8249-232fba2674da
エラー番号:208、州:1、クラス:16


もしSQLKataでSQL文を生成したいだけで実行したくない場合は、コードは以下の通りです:



より高度なクエリ

JOIN テーブル


データを挿入


更新データ


データを削除

(終わり)





先の:ハイニックス(Hynix)およびマイクロン(Micron)メモリモジュールのラベルについて詳しく説明しています
次に:ESXI 7はサーバーホストのメモリモデルとサイズをチェックします
2022年10月13日 15:19:47に投稿 |
学ぶことを学んでいる、それは良いことです
2022年10月14日 11:07:18に投稿 |
学ぶために
 地主| 2025年1月2日 12:15:02に投稿 |
LINQKitは、SQLおよびEntity Frameworkの上級ユーザー向けのLINQ拡張の無料スイートです。 :ハイパーリンクのログインが見えます。
 地主| 2025年1月2日 14:20:57に投稿 |
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com