のためのベスト-プラクティスにおける画像モデル城ActiveRecord/モノレール

StackOverflow https://stackoverflow.com/questions/1186459

質問

当社の"ユーザーの"モデルのニーズの小さなプロフィール画像で見たいな方法が良いと思いますが全く取り扱い方します。もちろん、今でも十使い勝手はそのままのフォルダにディスクのパス/ファイル名、データベースがいいと思いでDBに格納されます。

私が最初に思った特性を持っていて、モデルのようになります:

[Property] 
public byte[] ProfilePicture
{
  get;
  set;
}

たくなったら、迷うことなく思って成長れているこの方法--ってバイト配列からデータベースの、その後に変換する画像の一部のハンドラです。

は誰も見たことが良いチュートリアルとしての取り扱いについてこのようなこんなことをしたのだろう。いう共通の十分条件というモノレール特有のであるが、これまでのところ、私の検索が非常に増えてきております。

役に立ちましたか?

解決

約に画像を保存データベースファイルを参照 この質問.

また店舗でDB、最も重要なことはでき を取得する byte[] 毎回照会のためのユーザれることがありますので、潜在的に多くのデータと大半のケ問題です。いることができることのいずれかの画像を別のテーブルや地図を byte[] 他の事業体で同じテーブルを想定ユーザのみとなってい絵):

[ActiveRecord("users")]
public class UserWithoutPicture {
  [PrimaryKey]
  public virtual int Id {get;set;}
...
  [BelongsTo]
  public virtual UserProfilePicture ProfilePicture {get;set;}
}

[ActiveRecord("users")]
public class UserProfilePicture {
  [PrimaryKey]
  public virtual int Id {get;set;}

  [Property]
  public virtual byte[] Image {get;set;}
}

こうしてアルファベットとの行動が.例えば、特定のユーザーの ProfilePicture れることはありませんnullになります。なんで挿入-削除 UserProfilePicture 以来、実際にはそのユーザーの代わりに使います。という追加、意識の 選択された(N+1.ことになるものの、私の頭 完全未審査.

結論:画像を保存別のテーブルの自由度は飛躍的に向上します。

したい場合に便利で取り組むことで Image 代わりに原 byte[], 実 IUserType.でも覚えている画像はIDisposableとになるでしょう 非常に硬い 処理します。

実装モノレールのコントローラーを返しますイメージは非常に容易なものになるだろう...使おう [ARFetch] を取得 UserProfilePicture によるidの書き込みに応答ストリームと適切なコンテンツタイプになります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top