Hier ist, wie ich es in einer Abfrage basierend auf den von Ihnen bereitgestellten Informationen tun würde.
var posts = await _context.Post
.Where(post =>
_context.BlogPost.Any(bp => bp.BlogId == blogId && bp.PostId == post.PostId)
)
.ToListAsync();
Hier ist, wie ich es in zwei Abfragen, um Contains
Basis zu verwenden, tun würde, auf den Informationen, die Sie zur Verfügung gestellt.
var postIds = await _context.BlogPost
.Where(bp => bp.BlogId = blogId)
.Select(bp => bp.PostId)
.ToArrayAsync();
var posts = await _context.Post
.Where(p => postIds.Contains(p.PostId))
.ToListAsync();
Hier ist, wie ich es in einer Abfrage tun würde, wenn ich wertvolle EntityFramework Funktionen verwendet haben, und ich hatte eine Referenz Eigenschaft namens Beitrag auf Blogpost.
var posts = await _context.BlogPost
.Where(bp => bp.BlogId == blogId)
.Select(bp => bp.Post)
.ToListAsync();
Hier ist, wie ich es in einer Abfrage tun würde, wenn ich wertvolle EntityFramework Funktionen verwendet haben, und ich hatte eine Sammlung Eigenschaft namens Beiträge aus dem Blog, und die vielen vielen Blogpost Tabelle von EntityFramework in eine solche versteckt So, dass Sie nie wirklich mit C# interagieren.
var posts = await _context.Blog
.Where(b => b.BlogId == blogId)
.SelectMany(b => b.Posts)
.ToListAsync();
Auf der anderen Seite, wenn die viel viel Blogpost Tabelle von EntityFramework ausgesetzt ist, dann könnte man im Blog startet noch und richtig konfigurierte Sammlung und Referenzobjekte verwenden wie so an die Pfosten zu erhalten.
var posts = await _context.Blog
.Where(b => b.BlogId == blogId)
.SelectMany(b => b.BlogPosts)
.Select(bp => bp.Post)
.ToListAsync();
Oder
var posts = await _context.Blog
.Where(b => b.BlogId == blogId)
.SelectMany(b => b.BlogPosts.Select(bp => bp.Post))
.ToListAsync();
Imbiss ist EntityFramework nicht SQL. Was Sie in SQL tun, kann oder kann nicht direkt zugeordnet werden oder sich sogar darauf beziehen, wie Sie in EntityFramework vorgehen würden. Nicht nur das, aber wenn Sie EntityFramework verwenden, verwenden Sie EntityFramework und C# -Sprachenfunktionen, die nicht EntityFramework per se sind, zum Beispiel LINQ. Die Aufschlüsselung des Problems in seine Bestandteile kann Ihnen dabei helfen, Probleme zu lösen und die Untersuchung komplexer Vorgänge zu erleichtern. LINQ isoliert zu lernen und zu üben, wird Ihnen dabei helfen, mit EntityFramework besser zu werden.
I aktualisiert diese nach dem Code erneut zu lesen. Ich sehe jetzt, dass Sie versuchen, die Kategorie zurückzugeben, zu der ein Beitrag gehört, und nicht eine Liste von Beiträgen, die zu einer Kategorie gehören. –
Ich habe die Namen der Datenbanktabellen geändert, um sie verständlicher zu machen. Ich versuche, eine Liste der Beiträge zu einer Kategorie zu erhalten (Blog ist die Kategorie der Beiträge) – QuanDar
Danke für die Klärung. Ich habe eine Reihe von Beispielen hinzugefügt, um Sie über EntityFramework und LINQ nachzudenken, und ermutige Sie hoffentlich, sich Zeit zu nehmen, um einige Online-Kurse zu beiden Technologien zu studieren und/oder anzusehen. –