Zum Beispiel, ich habe diese Einheiten:Fügen Sammlung in Entity Framework Kern
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; }
}
Wie soll ich alle PageTitles laden, wenn ich nur die BookID wissen?
Hier ist es, wie ich versuche, dies zu tun:
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();
}
Aber das Problem ist, dass es Ausnahme
Argument wirft: Die Eigenschaften Ausdruck ‚x => {von Seiten y in x wählen Sie [y] .PageTitle} 'ist nicht gültig. Der Ausdruck sollte einen Eigenschaftenzugriff darstellen: 't => t.MyProperty'. Verwenden Sie bei der Angabe mehrerer Eigenschaften einen anonymen Typ: 't => new {t.MyProperty1, t.MyProperty2}'. Parametername: propertyAccessExpression
Was ist falsch, was genau soll ich tun?
, wie es funktioniert ist? Ich meine, wenn ich y.PageTitle tippe, habe ich kein Intellisense-Feld mit PageTitle, aber es funktioniert, baut! –
Siehe https://github.com/dotnet/roslyn/issues/8237 – Smit