関連するエンティティをEntityFramework Core 1.0.1 rawクエリに含めるにはどうすればよいですか?

アリン・フローリン

セットアップ:

  • ASP .NET Core 1 Web API

  • MySQL Server Community Edition 5.7

  • PomeloMySQLドライバーを備えたEntityFramework Core 1.0.1(3つの個別のコンテキスト、3つの個別のデータベース)。

コンテキスト:MainContext(maindb)、Module1Context(module1db)、Module2Context(module2db)。

(Module1Contextからの)投稿のリストを返すクエリを実行したいのですが、(MainContext、Userエンティティからの)作成者権限でそれらをフィルタリングする必要があります。

したがって、私がやろうとしているのは、別のデータベーステーブルに対してJOIN句を使用してクエリを実行することです。

var results = await module1Ctx.Posts.FromSql("select * from `module1db`.`posts` as `p` inner join `maindb`.`users` as `u` on `p`.`AuthorId`=`u`.`Id` where <conditions here>").ToListAsync();

これを実行すると、「シーケンスに複数の要素が含まれています」というSQL例外が発生します。p。*を選択すると機能しますが、ユーザーデータも取得する必要があります。

Postエンティティには、ユーザーID(public long AuthorId {get; set;})への参照と、EFが2つのデータベースに自動的に参加できなかったため、偽のナビゲーションプロパティNotMappedが含まれています。私の最初の質問は-これは可能でしょうか。私はこれがうまくいくと強く感じていますが、私は何か小さなものが欠けていると感じています。

これが機能しない場合は、DbContextの接続を使用して手動でクエリを実行します。これを行う場合、結果をユーザーデータを含む投稿のリストにマッピングするにはどうすればよいですか?

ツェン

シーケンスに複数の要素が含まれています

これは、列が複数回表示されることを示しています。たとえば、両方のテーブルに「ModifiedDate」列がある場合select *、そうすると、結果セットに2回(1回p.ModifiedDateと1回)表示されu.ModifiedDateます。

また、これに加えて、返される列はモデルと完全に一致する必要があります。モデルで定義されているプロパティが欠落していてはならないため、p.*機能します。

ただし、PostモデルがUserテーブルの値を表すフィールドを定義していない限り、それらを返すことはできません。これはモデルが完全に一致する必要があり、Postプロパティがマップされているためです。

アドホックサポート(ビューモデルなどの任意のモデルへの結果のマッピング)は、EntityFramework Core 1.0にはまだ実装されておらず、将来のバージョンのロードマップの機能です

EntityFrameworkコアロードマップから:

重要なO / RM機能

  • ..。
  • 非モデルタイプの生のSQLクエリを使用すると、生のSQLクエリを使用して、モデルの一部ではないタイプにデータを入力できます(通常は非正規化されたビューモデルデータの場合)。

編集

EFCoreのドキュメントからも

制限事項

生のSQLクエリを使用するときに注意すべきいくつかの制限があります。

  • SQLクエリは、モデルの一部であるエンティティタイプを返すためにのみ使用できます。バックログが拡張され、生のSQLクエリからアドホックタイプを返すことができるようになりました。
  • SQLクエリは、エンティティタイプのすべてのプロパティのデータを返す必要があります。
  • 結果セットの列名は、プロパティがマップされている列名と一致する必要があります。これは、生のSQLクエリでプロパティ/列のマッピングが無視され、結果セットの列名がプロパティ名と一致する必要があるEF6.xとは異なることに注意してください。
  • SQLクエリに関連データを含めることはできません。ただし、多くの場合、Include演算子を使用してクエリの上に作成し、関連データを返すことができます(関連データを含めるを参照)。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

EntityFrameworkを使用して1つまたは0から1つのエンティティ間の関連付けを削除する

分類Dev

mongoで1 = 1または1 = 0をクエリするにはどうすればよいですか?

分類Dev

2つのエンティティ間に1対1の関連付けがあることをEntityFramework5.0に伝えるにはどうすればよいですか?

分類Dev

1回の挿入で複数の関連エンティティを追加するEntityFramework

分類Dev

Entity Frameworkと1対多の関係にあるエンティティをシリアル化するにはどうすればよいですか?

分類Dev

両方のエンティティを1:1の関係で部分的に参加させるにはどうすればよいですか?

分類Dev

Pythonを使用して1つのElasticSearchクエリにRangeand Matchクエリを含めるにはどうすればよいですか?

分類Dev

[1対2]の関係が必要な場合にエンティティをマッピングするにはどうすればよいですか?

分類Dev

Azure App Serviceに1:nの関係を持つエンティティを挿入するにはどうすればよいですか

分類Dev

関係が1つしかないエンティティを取得するにはどうすればよいですか?

分類Dev

サブクエリに2つの列を含めるが、そのうちの1つを無視するにはどうすればよいですか?

分類Dev

Entity Framework Coreで1対1の関係を作成するにはどうすればよいですか?

分類Dev

SimplePager(GWT)でテキスト「1-1of0」をクリアするにはどうすればよいですか?

分類Dev

.net Coreの大きなJSONオブジェクトから1つのプロパティを取得するにはどうすればよいですか?

分類Dev

Railsでjsonを1行の文字列に変換し、POSTリクエストに含めるにはどうすればよいですか?

分類Dev

文字列に-0または-1が含まれているかどうかをテストするために正規表現を実行するにはどうすればよいですか?

分類Dev

1対0の関係が常にエンティティフレームワークとの内部結合を生成するのはなぜですか?

分類Dev

1つのエントリに関連するすべての情報をクエリするにはどうすればよいですか?

分類Dev

束ではなく1つのエンティティのみを返すようにHibernateを強制するにはどうすればよいですか?

分類Dev

エンティティフレームワークで多対1の構造を適切に実装するにはどうすればよいですか?

分類Dev

変数を含むn1qlクエリをSpring @Queryアノテーションに配置するにはどうすればよいですか?

分類Dev

エンティティとそれに関連するすべてのエンティティをSpringBootでの1回の保存で保存します

分類Dev

エンティティとそれに関連するすべてのエンティティをSpringBootでの1回の保存で保存します

分類Dev

ASP.NET Core 1およびVSCodeエディターでWCFサービスを利用するにはどうすればよいですか?

分類Dev

gormの2つのエンティティ間で1対多および多対1の関連付けを作成するにはどうすればよいですか?

分類Dev

greendaoに1対1のマッピングエンティティを保存するにはどうすればよいですか?

分類Dev

1つのアクティビティに複数のnavHostFragmentを含めるにはどうすればよいですか?

分類Dev

同じディレクトリ内のすべてのテキストファイルの最後の行(コンテンツ)の最後で、*を1 / 2-1 / 2または1-0または0-1に置き換えるにはどうすればよいですか?

分類Dev

同じディレクトリ内のすべてのテキストファイルの最後の行(コンテンツ)の最後で、*を1 / 2-1 / 2または1-0または0-1に置き換えるにはどうすればよいですか?

Related 関連記事

  1. 1

    EntityFrameworkを使用して1つまたは0から1つのエンティティ間の関連付けを削除する

  2. 2

    mongoで1 = 1または1 = 0をクエリするにはどうすればよいですか?

  3. 3

    2つのエンティティ間に1対1の関連付けがあることをEntityFramework5.0に伝えるにはどうすればよいですか?

  4. 4

    1回の挿入で複数の関連エンティティを追加するEntityFramework

  5. 5

    Entity Frameworkと1対多の関係にあるエンティティをシリアル化するにはどうすればよいですか?

  6. 6

    両方のエンティティを1:1の関係で部分的に参加させるにはどうすればよいですか?

  7. 7

    Pythonを使用して1つのElasticSearchクエリにRangeand Matchクエリを含めるにはどうすればよいですか?

  8. 8

    [1対2]の関係が必要な場合にエンティティをマッピングするにはどうすればよいですか?

  9. 9

    Azure App Serviceに1:nの関係を持つエンティティを挿入するにはどうすればよいですか

  10. 10

    関係が1つしかないエンティティを取得するにはどうすればよいですか?

  11. 11

    サブクエリに2つの列を含めるが、そのうちの1つを無視するにはどうすればよいですか?

  12. 12

    Entity Framework Coreで1対1の関係を作成するにはどうすればよいですか?

  13. 13

    SimplePager(GWT)でテキスト「1-1of0」をクリアするにはどうすればよいですか?

  14. 14

    .net Coreの大きなJSONオブジェクトから1つのプロパティを取得するにはどうすればよいですか?

  15. 15

    Railsでjsonを1行の文字列に変換し、POSTリクエストに含めるにはどうすればよいですか?

  16. 16

    文字列に-0または-1が含まれているかどうかをテストするために正規表現を実行するにはどうすればよいですか?

  17. 17

    1対0の関係が常にエンティティフレームワークとの内部結合を生成するのはなぜですか?

  18. 18

    1つのエントリに関連するすべての情報をクエリするにはどうすればよいですか?

  19. 19

    束ではなく1つのエンティティのみを返すようにHibernateを強制するにはどうすればよいですか?

  20. 20

    エンティティフレームワークで多対1の構造を適切に実装するにはどうすればよいですか?

  21. 21

    変数を含むn1qlクエリをSpring @Queryアノテーションに配置するにはどうすればよいですか?

  22. 22

    エンティティとそれに関連するすべてのエンティティをSpringBootでの1回の保存で保存します

  23. 23

    エンティティとそれに関連するすべてのエンティティをSpringBootでの1回の保存で保存します

  24. 24

    ASP.NET Core 1およびVSCodeエディターでWCFサービスを利用するにはどうすればよいですか?

  25. 25

    gormの2つのエンティティ間で1対多および多対1の関連付けを作成するにはどうすればよいですか?

  26. 26

    greendaoに1対1のマッピングエンティティを保存するにはどうすればよいですか?

  27. 27

    1つのアクティビティに複数のnavHostFragmentを含めるにはどうすればよいですか?

  28. 28

    同じディレクトリ内のすべてのテキストファイルの最後の行(コンテンツ)の最後で、*を1 / 2-1 / 2または1-0または0-1に置き換えるにはどうすればよいですか?

  29. 29

    同じディレクトリ内のすべてのテキストファイルの最後の行(コンテンツ)の最後で、*を1 / 2-1 / 2または1-0または0-1に置き換えるにはどうすればよいですか?

ホットタグ

アーカイブ