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

眺める: 41452|答える: 1

[出典] EFコアシリーズ(5)はSQL文やビュー、ストアドプロシージャを実行します

[リンクをコピー]
掲載地 2021/02/19 14:00:14 | | | |
EF Core Series 2はOnModelCreatingをカプセル化し、反射を用いてインデックスを作成するなどを備えています
https://www.itsvse.com/thread-9392-1-1.html

EF Core Series (3) エンティティフレームシャドウ属性 [再版]
https://www.itsvse.com/thread-9558-1-1.html

EF Core Series 4は生成されたSQL文を扱います
https://www.itsvse.com/thread-9564-1-1.html
Entity Framework Coreでは、リレーショナルデータベースを使う際に元のSQLクエリに戻すことができます。 必要なクエリがLINQで表現できない場合は、生のSQLクエリを使用できます。 LINQクエリの使用がSQLクエリの非効率を引き起こす場合は、生のSQLクエリを使うこともできます。 生のSQLクエリは、モデル内で汎用エンティティタイプまたはキーレスエンティティタイプを返すことができます。

まとめ:Entity Framework(EF)でSQL文とストアドプロシージャを実行すること。

エンティティフレームワーク(EF)はSQL文とストアドプロシージャを実行します
https://www.itsvse.com/thread-9517-1-1.html
SQL文クエリ、更新、削除を実行し、以下の方法でストアドプロシージャやビューを呼び出します。

  • FromSqlRawより
  • FromSql補間
  • ExecuteSqlRaw
  • ExecuteSqlInterpolated



FromSqlRawおよびFromSqlInterpolatedは主にクエリ操作に使用されます
ExecuteSqlRawとExecuteSqlInterpolatedはデータベースに追加、更新、削除操作を行い、影響を受けた行数を返します


エンドは補間キーワードで、通常はパラメータの追加、削除、修正、チェックを行い、文字列補間構文を用いたSQLインジェクション攻撃に抵抗する方法です。 例えば:

SQL文を出力すると、クエリ条件はスプライシングを経ずに済みます。以下の図に示されています:

C# Parameterized Parametersはsp_executesqlを使ってSQL文を実行します
https://www.itsvse.com/thread-3111-1-1.html




ネイティブSQLクエリを使用する際に注意すべきいくつかの制限があります:

SQLクエリはエンティティ型のすべての属性に対してデータを返す必要があります。
結果セット内の列名は、属性がマッピングされる列名と一致しなければなりません。 この挙動はEF6とは異なります。 EF6では元のSQLクエリの属性/列マッピング関係は無視され、結果セットの列名は属性名と一致しなければなりません。
SQLクエリには関連データを含めることはできません。 しかし多くの場合、クエリ直後にIncludeメソッドを使って相関データを返すことができます(Include Associative Dataを参照)。


(終わり)




先の:EF Core Series 4は生成されたSQL文を扱います
次に:Fiddlerがリンクを置き換え、転送リダイレクトを要求します
 地主| 掲載地 2023/06/14 21:15:53 |
EF 6はネイティブのSQL文やパラメータインジェクション問題を実行します
https://www.itsvse.com/thread-10610-1-1.html
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com