Jag kan ju ha många olika kategorier för varje inlägg.
Japp och det är inget problem, eftersom du vill hämta alla entries för en specific kategori, och den kategorin skickar du med in som en parameter till din funktion som hämtar alla entries som tillhör just den kategorin, det gör inget att de tillhör flera kategorier, det är du inte intresserad av att veta när du vill hämta alla entries för kategorin: .NET om en entry också tillhör kategorin: Architecture är ointressant när jag vill se alla entrys som tillhör: .NET.
Och sedan är det ju en motsägelse att kalla den funktionen som du skriver - GetAllEntries, då den bara hämtar vissa meddelanden.
Döp den till va fan du vill, det var ett exempel ta det för vad det är, kalla den nisse om du vill, det är jag ganska ointresserad av. Vilket gjorde att jag inte påpekade olämpligheten i namnet när du föreslog det.
Och hur föreslår du att man ska visa alla inlägg på förstasidan då?
Jag förslår inte att du visar alla inlägg på första sidan, utan kanske tar de 10 senaste helt oberoende av vilken kategori som de tillhör. Och för det så har du en method som heter: MinHund() som skickar tillbaka de 10 senaste entries.
Jag frågar dig - vad är fel på det sättet jag har valt? Varför ska inte BlogEntry klassen veta vilka kategorier den tillhör? Det blir ju skitmycket enklare att binda en Repeater eller liknande till Listan då.
Varför startade du tråden, för att allting var perfekt?
Jag kan dock inte riktigt se hur mycket enklare det blir att binda en lista med entites som har alla kategorier som en sträng arrays som en properties, än att binda en lista med entites som inte har en properties med alla kategorier som en properties, men det är ju bara jag...
Sedan har jag en för att hämta från en viss författare och en för att hämta alla inom ett datumintervall.
Perfekt, varför i hela världen vill du då inte ha en method som hämtar alla entries från en specifik kategori.
Det är möjligt att jag har missförstått vad du egentligen gör, men i min värld så verkar det som att du gör följande:
1. Hämtar ALLA entrys.
2. Väljer sedan att visa entrys för en specifik kategori
3. Du går du igen hela din lista och sorterar fram vilka entrys som matchar en specifik kategori utifrån en sträng array.
Om jag nu utmanar dig och säger att du har 2 miljoner entries i din databas, och 400 kategorier (helt provocerande tal). Och du bestämmer dig för att visa alla entries för din nya kategori: Magnus är bäst! Som innehåller 2 poster (så bra är jag :)) Så kanske du inser hur mycket datakraft som ligger på att sortera fram dessa 2 poster ur en lista som skall in och gör en massa sträng kontroller, istället för att låta en databas göra det den är bra på, hämta upp data.
Om du vill ha en array med alla kategorier i din blogentry så får du ha det, men det betyder inte att du skall använda dig av den informationen när du skall hämta ut entries från en specifik kategori, det är databasens jobb, eftersom du inte (hoppas jag iallfall) cachar all din data i ditt businesslager, det går bra att cacha delmängder, som exempel viss kategorier eftersom du vet att du inte kommer ha mer än 20-30 kategorier, och det tar inte speciellt mycket plats och du gör inga operationer på dem. Medans dina entrys kommer att växa med tiden, och skulle du råka skriva din caching rutin dåligt, så att varje användare får en egen cache, så får du problem med prestandan efter ett tag, då minne tar slut.
- M