Si può fare ma richiede un po 'di lavoro manuale. Richiede l'attivazione di FILESTREAM
.
https://docs.microsoft.com/en-us/sql/relational-databases/blob/enable-and-configure-filestream
Tavolo, notare la colonna unique rowguidcol not null
IdFile che è richiesto.
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
Modello EF, colonna IdFile non è presente, contiene solo valori predefiniti e non è utile per noi. Viene utilizzato solo da SQL Server:
[Table("Files")]
public class FileModel
{
public int Id { get; set; }
public string Title { get; set; }
public byte[] File { get; set; }
}
VM:
public class FileViewModel
{
public string Title { get; set; }
public HttpPostedFileBase File { get; set; }
}
Fonte:
http://www.floatincode.net/post/sql-file-stream-in-asp.net-mvc-with-entity-framework
Questo potrebbe essere risolto utilizzando il metodo simile http://stackoverflow.com/ domande/4441179/outofmemoryexception-when-using-sql-filestream? Sembra che utilizzi EntityFramework mescolato con il vecchio tipo di connessione. – MadBoy
sì, se non c'è un altro modo, userò questo. grazie –