你可以做到,但它需要一些手动工作。需要FILESTREAM
启用。
https://docs.microsoft.com/en-us/sql/relational-databases/blob/enable-and-configure-filestream
表,请注意unique rowguidcol not null
所需的 IdFile 列。
CREATE TABLE [dbo].[Files](
[id] [int] IDENTITY(1,1) NOT NULL,
[IdFile] [uniqueidentifier] unique ROWGUIDCOL NOT NULL,
[Title] [nvarchar](max) NULL,
[File] [varbinary](max) FILESTREAM NULL,
CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED
(
[id] ASC
))
GO
ALTER TABLE [dbo].[Files] ADD CONSTRAINT [DF_Files_IdFile] DEFAULT (newid()) FOR [IdFile]
GO
EF 模型,IdFile 列不存在,它只包含默认值,对我们没有用处。它仅由 SQL Server 使用:
[Table("Files")]
public class FileModel
{
public int Id { get; set; }
public string Title { get; set; }
public byte[] File { get; set; }
}
虚拟机:
public class FileViewModel
{
public string Title { get; set; }
public HttpPostedFileBase File { get; set; }
}
资源:
http://www.floatincode.net/post/sql-file-stream-in-asp.net-mvc-with-entity-framework