11
でコレクションを含め、私はこれらのエンティティを持っている:私はBookIdを知っていればは、例えば、Entity Frameworkのコア
public class Book
{
[Key]
public string BookId { get; set; }
public List<BookPage> Pages { get; set; }
public string Text { get; set; }
}
public class BookPage
{
[Key]
public string BookPageId { get; set; }
public PageTitle PageTitle { get; set; }
public int Number { get; set; }
}
public class PageTitle
{
[Key]
public string PageTitleId { get; set; }
public string Title { get; set; }
}
は、どのように私は、すべてのPageTitlesをロードする必要がありますか?
ここでは、私はこれをやろうとしている方法です:
using (var dbContext = new BookContext())
{
var bookPages = dbContext
.Book
.Include(x => x.Pages)
.ThenInclude(x => x.Select(y => y.PageTitle))
.SingleOrDefault(x => x.BookId == "some example id")
.Pages
.Select(x => x.PageTitle)
.ToList();
}
しかし、問題は、それは例外
ArgumentExceptionがスローされますことを、次のとおりです。X => {ページからプロパティ式を」 y in x select [y] .PageTitle} 'は無効です。式は、 プロパティアクセスを表す必要があります: 't => t.MyProperty'。 プロパティを複数指定する場合は、匿名タイプを使用します。 't => new {t.MyProperty1、 t.MyProperty2}'。パラメータ名:propertyAccessExpression
どうしたらよいですか?
それは作品がどのように?つまり、y.PageTitleと入力すると、PageTitleのIntellisenseフィールドはありませんが、動作します。 –
https://github.com/dotnet/roslyn/issues/8237を参照してください。 – Smit