データ型VARBINARYはバイト配列で
リスト6-10の準備手順
Imageクラスの定義
Contextに追加
PMでUpdate-database //Code First
1.
Public Class Image
Public Property Id As Integer
Public Property Name As String
Public Property Contype As String 'Ctypeは予約語のため
Public Property Data As Byte() 'バイナリデータ用
End Class
2.
Imports System.Data.Entity
Public Class MvcViewContext
Inherits DbContext
Public Property Articles As DbSet(Of Article)
Public Property Authors As DbSet(Of Author)
Public Property Comments As DbSet(Of Comment)
Public Property Members As DbSet(Of Member)
Public Property Images As DbSet(Of Image)
End Class
3.
PM>Update-database
リスト6-10
・・・中略・・・
'ファイルのアップロード
'data.SaveAs(Path.Combine(Server.MapPath("~/App_Data/Photos"), Path.GetFileName(f)))
'アップロードファイルをデータベースに保存する
Dim bdata As Byte() = New Byte(data.ContentLength) {}
data.InputStream.Read(bdata, 0, data.ContentLength)
Dim img = New Image With {
.Name = Path.GetFileName(data.FileName),
.Contype = data.ContentType,
.Data = bdata}
db.Images.Add(img)
db.SaveChanges()
ViewBag.Message = f & " をアップロードしました。"
・・・中略・・・
参考
//著者山田祥寛氏による解説
http://www.atmarkit.co.jp/fdotnet/dotnettips/939aspmvcfileupload2/aspmvcfileupload2.html