簡単なLINQのは、EFにあります:EFがsimleクエリのサブクエリを生成するのはなぜですか?
var query = from p in _db.Posts
where p.BlogtId == blogId
select p;
それは、この形式のSQL生成:
SELECT
`Extent1`.`PostId`,
`Extent1`.`BlogId`,
...
FROM `Posts` AS `Extent1`
WHERE `Extent1`.`BlogId` = @p__linq__0
をしかし、私はこのクエリ
var query = from p in _db.Posts
where p.BlogId == blogId
orderby p.PublishDate
select p;
へ順を追加するとき、それが生成しますこのクエリ
SELECT
`Project1`.`PostId`,
`Project1`.`BlogId`,
...
FROM (SELECT
`Extent1`.`PostId`,
`Extent1`.`BlogId`,
...
FROM `Posts` AS `Extent1`
WHERE `Extent1`.`BlogId` = @p__linq__0) AS `Project1`
ORDER BY
`Project1`.`PublishDate` ASC
サブクエリが生成されるのはなぜですか?MySQLではこのクエリのパフォーマンスに問題があります。 MySQLは内部クエリを実行しようとしています。内部クエリはデータベース内のすべてのレコードを取り戻し、テーマをソートしようとします。
私はこれがあなたのリンクは他の人に伝えるかもしれないものにもかかわらず、エンティティフレームワークの問題ではありません
SELECT
`Extent1`.`PostId`,
...
FROM `Posts` AS `Extent1`
WHERE `Extent1`.`BlogId` = @p__linq__0
ORDER BY
`Extent1`.`PublishDate` ASC
が、それはあなたにどのような違いを生むん:ここでは
はMySqlConnector /ネットのローカルで編集コピーを持ってする方法ですか? – podiluska
@podiluska MySQLでこのクエリのパフォーマンスに問題があります。 MySQLは内部クエリを実行しようとしています。内部クエリはデータベース内のすべてのレコードを取り戻し、テーマをソートしようとします。 –
なぜそれらはすべて元に戻りますか?フィルタリングされていますか? – podiluska