1

画像を SQL Server に保存する正しい方法はどれですか? それらを ADO.NET Entity Framework で保存する方法はありますか? 最善かつ最新の方法でそれを行う方法についての優れたリソースが必要です。

4

2 に答える 2

5

SQL Serverに画像を保存する場合の正しい方法は、FILESTREAMタイプを使用することです。

それらをADO.NETEntityFrameworkで保存する方法はありますか?

重要なのは、FILESTREAMはSQL Server固有の列であるのに対し、EFはデータベースに依存しないように設計されているということです。したがって、モデルにタイプのプロパティを設定することはできますbyte[]が、EFはストリーミングを利用しません。標準でロードしますvarbinary(max)

ネイティブSqlFileStreamクラスを使用して、ADO.NETのFILESTREAM列型を直接操作することもできます。blog postこれが例を示すaです。

また、ファイルをファイルシステムに保存し、ファイルパスのみをデータベースに保存することもできます。

于 2013-02-10T09:04:07.033 に答える
0

イメージは varbinary 形式で保存できます。SQL データベース テーブルで、タイプvarbinary(MAX)and varchar(MAX)(任意のサイズを使用できます) の 2 つの列を作成し、[null を許可する] をオンにします。

エンティティ モデルに 2 つのプロパティを追加します。

public byte[] ImageData { get; set; } //Your image stored in binary data in the database
public string ImageMimeType { get; set; ) //just a string representation of Your image type,
                                          //this property is optional )

ImageMimeTypeお申し込みいただけますHiddenInputAttribute(DisplayValue=false)ImageDataフレームワークがバイト配列のエディターを視覚化しないようにするために適用する必要はありません。

データベースに画像を保存するには: (ここでわかるように、モデル オブジェクトは「製品」と呼ばれます)

if (image != null) {
product.ImageMimeType = image.ContentType; 
product.ImageData = new byte[image.ContentLength];
image.InputStream.Read(product.ImageData, 0, image.ContentLength);
}

お役に立てれば。

psファイルストリームに画像を保存し、データベースに「ファイルパス」を保持します。

于 2013-02-11T10:23:21.720 に答える