J'ai la mise en place suivante.Subsonic 3.0 et tables « Link »
BlogPosts BlogToCategory Catégorie
Un blog post peut avoir beaucoup categorys et une catégorie peut être dans de nombreux messages de blog. .. (D'où la table intermédiaire
Comment puis-je obtenir une liste de tous les articles du blog dans une catégorie
J'ai essayé cela, mais cant semblent bien faire les choses (je reçois un IQueryable - > IEnumerable cast erreur)
public IEnumerable<BlogPost> FetchAllBlogs(int? CatId)
{
return from c in CategoryLink.All()
where c.CategoryID == CatId
select c.BlogPost;
}
Ok comme ci-dessous, je l'ai essayé ce qui suit.
return from blogToCategories in subtext_Link.All()
join blogPosts in subtext_Content.All() on blogToCategories.BlogId equals blogPosts.BlogId
where blogToCategories.CategoryID == CatId
orderby (blogPosts.DateAdded) descending
select blogPosts;
maintenant, c'est étrange, il semble la jointure ne va pas que chaque fois qu'il ya des données dans la Li nks table (Tablethat lie la catégorie au blog) il retourne TOUS les blogs.
a également essayé le ci-dessous.
BlogList = new TransformDB().Select
.From<subtext_Content>()
.InnerJoin<subtext_Link>(subtext_LinksTable.BlogIdColumn, subtext_ContentTable.BlogIdColumn)
.Where(subtext_LinksTable.CategoryIDColumn).IsEqualTo(CatId)
.ExecuteTypedList<subtext_Content>();
Generated SQL
SELECT [dbo]. [Subtext_Links]. [LinkID], [dbo]. [Subtext_Links]. [Titre], [dbo]. [Subtext_Links]. [URL], [dbo]. [Subtext_Links]. [Rss], [dbo]. [Subtext_Links]. [Actif], [dbo]. [Subtext_Links]. [ID catégorie], [dbo]. [Subtext_Links ]. [blogid], [DBO]. [subtext_Links]. [PostID], [DBO]. [subtext_Links]. [NewWindow], [DBO]. [ subtext_Links]. [Rel], \ r \ n [dbo]. [subtext_Content]. [ID], [dbo]. [subtext_Content]. [Titre], [dbo]. [subtext_Content]. [DateAdded], [dbo]. [subtext_Content]. [PostType], [dbo]. [subtext_Content]. [Auteur], [dbo]. [subtext_Content]. [Email], [dbo]. [subtext_Content]. [blogid ], [ [dbo]. [Subtext_Content]. [Description], [dbo]. [Subtext_Content]. [DateUpdated], [dbo]. [Subtext_Content]. [Texte], [dbo]. [Subtext_Content]. [FeedBackCount], [DBO]. [subtext_Content]. [PostConfig], [DBO]. [subtext_Content]. [NomEntrée], [DBO]. [subtext_Content]. [DateSyndicated] \ r \ n FROM [dbo]. [Subtext_Links] \ r \ n INNER JOIN [dbo]. [Subtext_Content] ON [dbo]. [Subtext_Links]. [BlogId] = [dbo]. [Subtext_Content]. [BlogId] \ r \ n OÙ [dbo] [subtext_Links] [CategoryID] = @ 0"
Qu'est-ce que SQL est en cours de génération? –
@Adam - Mise à jour du message principal avec SQL. – LiamB
Le @ 0 est un paramètre et non une valeur. Il est pratiquement impossible de lire le sql dans ce format, mais il ne semble pas que ce soit forcément faux. Cela donne-t-il les résultats attendus lorsque vous exécutez ce SQL? –