Für Hintergrund, ich habe eine Datenschicht und Service-Schicht lose basierend auf Rob Conery's Storefront Modell und wie Rob, viele meiner Domain-Objekte und verkettet mit LazyList<>
's und LazyItem<>
' s, um die verzögerte Ausführung, die Linq2Sql bietet, dass meine Lazy*
Typen verwenden IQueryable<T>
anstatt this awesome delegate approach.Wie soll ich ein Thumbnail-Bild erzeugen?
So habe ich ein Objekt Diagramm wie folgt aus (im Grunde sollte jede Aktivität eine Foto-Galerie von vielen Bilder- Thumbnails und Bildern in voller Größe):
latest3Activities[0].Gallery.Images.Inner[1].FullImage
Der Gallery
Typ hat eine Eigenschaft Images von LazyList<PhotoGalleryImage>
und so die IList<PhotoGalleryImage>
von dieser LazyList ist die Inner
Sie sehen. Jeder PhotoGalleryImage
Artikel hat eine FullImage
Eigenschaft und eine Thumbnail
Eigenschaft, beide vom Typ Image
.
Die Idee ist, dass das voll rez hochgeladen Foto in der PhotoGalleryImage.FullImage
Eigenschaft gespeichert wird und zunächst die Thumbnail
Eigenschaft ist Null
. Was ich danach bin, ist dies: Wenn die Thumbnail
Eigenschaft zum ersten Mal zugegriffen wird, wenn es Null
ist, möchte ich meine Service-Schicht, um den Daumen zu generieren, bestehen Sie es in der DB, dann geben Sie die Image
Instanz zurück, die das kleinere Foto ist . Ich habe den ganzen Code, um das Thumbnail aus dem Vollbild zu erstellen, also ist das hier nicht die Frage.
Was ich nicht herausfinden kann ist, wie man den ersten Zugriff der Thumbnail
Eigenschaft (in meinem IQueryable<>
Architektur Kontext) fangen und dann die Service-Schicht die Größenänderung und nicht die Repositories (DAL) tun. Ich bin der festen Überzeugung, dass die Service- (Business-) Schicht für diese Funktionalität verantwortlich sein sollte, aber ich sehe nicht, wie sie funktioniert.
Momentan denke ich, dass die Zuordnung von meinen Domain-Klassen in den Repositories zu den Linq2Sql-Klassen ein guter Ort wäre, um diesen 'ersten Zugriff' zu identifizieren, aber ich sehe dann nicht, wie eine niedrigere Ebene dann aufrufen kann in die Service-Schicht und führen Sie die Schrumpfung (oder sogar, wenn es kann, dass es sollte).
Vielleicht mein Design zwingt mich, die Repos die Konvertierung zu machen. Vielleicht sollte ich nicht wollen, dass die Service-Schicht diese Logik überhaupt ausführt. Vielleicht ist mein Design einfach so schrecklich, dass ich dieses Durcheinander überhaupt nicht sehen sollte.
Pls Hilfe. Alle Rückmeldungen werden geschätzt.
Bitte erläutern Sie, wie Sie die thumbnailed Image-Instanz verwenden werden. –
ok- in der Detailansicht für eine Aktivität lade ich die Thumbs für die dazugehörige Fotogalerie via Ajax ein (so wie Facebook das tut). Jedes Galerie-Bildelement gibt mir Zugriff auf das Miniaturbild (für die Tabelle der Bilder) und das Vollbild (für den Fall, dass ein Benutzer auf einen Daumen klickt). –