私はデータレイヤーとサービスレイヤーを曖昧にして、Rob Conery's Storefrontモデルに基づいています。ロブズのように、私のドメインオブジェクトの多くはLazyList<>
とLazyItem<>
とチェーンされ、Linq2Sqlが提供する遅延実行を利用します。 Lazy*
タイプはthis awesome delegate approachではなくIQueryable<T>
を使用します。サムネイル画像を怠惰に生成する方法は?
latest3Activities[0].Gallery.Images.Inner[1].FullImage
Gallery
タイプはLazyList<PhotoGalleryImage>
のImagesプロパティを持っており、:
だから私はこのようなオブジェクトグラフを持っている(基本的には、それぞれの活動は、多くのimages-サムネイルとフルサイズの写真のフォトギャラリーを持っている必要があります)そのLazyListのIList<PhotoGalleryImage>
は、あなたが見るInner
です。各PhotoGalleryImage
アイテムはFullImage
プロパティとThumbnail
プロパティ(両方ともImage
)を持ちます。
考えられるのは、完全にアップロードされた写真がPhotoGalleryImage.FullImage
プロパティに保存され、最初はThumbnail
プロパティがNull
です。 私はこの後です:初めてThumbnail
プロパティにアクセスしたときは、Null
です。私のサービス層でThumbを生成し、DBに保持してから、小さな写真であるImage
インスタンスを返します。私はフルサイズの画像からサムネイルを作成するためのコードをすべて持っているので、ここでは問題はありません。私が把握カント何
は(私のIQueryable<>
アーキテクチャの文脈で)Thumbnail
プロパティの最初のアクセスをキャッチして、サービス層を持っている方法ですサイズ変更はなくリポジトリ(DAL)を行います。私は、サービス(ビジネス)層がこの機能の決定に責任を負うべきだと強く思っていますが、私はそれを動作させる方法がわかりません。
現在、私は、リポジトリ内の私のドメインクラスからLinq2Sqlクラスへのマッピングは、私が参照しているこの '最初のアクセス'を識別するのには良い場所だと思っていますが、サービス層に入れて縮小を実行してください(または可能であれば、は)。
私のデザインは、私がレポに変換をさせることを制限するかもしれません。たぶん、私はサービス層がこのロジックを実行することを望んではいけません。たぶん私のデザインはちょっと恐ろしいので、私は本当にこの混乱に直面してはいけません。
Pls help。すべてのフィードバックは高く評価されます。
サムネイルされたImageインスタンスをどのように使用するかを具体的に説明してください。 –
ok-アクティビティの詳細ビューでは、関連するフォトギャラリーの親指で、ajax(Facebookがどのように動作するか)を介してロードします。各ギャラリー画像アイテムは、サムネイル(画像のテーブルの場合)とフルサイズのサムネイル(ユーザーがサムをクリックした場合)の両方にアクセスできるようにします。 –