Entity Frameworkのコアをスキップして取り込む

c# entity-framework entity-framework-core

質問

私は単純なPOCOクラスを持っています:

public class Library
{
    [Key]
    public string LibraryId { get; set; }

    public string Name { get; set; }

    public List<Book> Books { get; set; }
}

public class Book
{
    [Key]
    public string BookId { get; set; }

    public string Name { get; set; }

    public string Text { get; set; }
}

そして、私は既に含まれている図書とライブラリを返すクエリを持っています:

dbContext.Set<Library>.Include(x => x.Books);

私は5つのライブラリをスキップしようとしているし、それらの10を取る:

await dbContext.Set<Library>.Include(x => x.Books).Skip(5).Take(10).ToListAsync();

問題は、このクエリでSkip and Takeメソッドを実行しようとすると、書籍のリストが含まれていないライブラリが返されることです。

以前にインクルードされたエンティティを保存して、 Skip and Takeでどのように作業できますか?

人気のある回答

通常は、 Skip and Takeメソッドを使用する前に、まずOrder Byが必要です。このように名前で注文してみてください:

await dbContext.Set<Library>().Include(x => x.Books)
                              .OrderBy(x=>x.Name)
                              .Skip(5)
                              .Take(10)
                              .ToListAsync();

あなたの質問はORDER BY句が必要なOFFSET-FETCHフィルタを使って翻訳されているはずです。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ