C# 实体框架中的SQL Server文件流?
如何在实体框架中使用文件流?我知道它不支持文件流,所以我决定只使用原始SQL,只用于文件 首先,我尝试运行自定义脚本,确定:C# 实体框架中的SQL Server文件流?,c#,sql-server,entity-framework,C#,Sql Server,Entity Framework,如何在实体框架中使用文件流?我知道它不支持文件流,所以我决定只使用原始SQL,只用于文件 首先,我尝试运行自定义脚本,确定: public override void Up() { Sql(@" CREATE TABLE FileStreams ( Id BIGINT IDENTITY PRIMARY KEY, RowId uniqueidentifie
public override void Up()
{
Sql(@"
CREATE TABLE FileStreams
(
Id BIGINT IDENTITY PRIMARY KEY,
RowId uniqueidentifier ROWGUIDCOL NOT NULL UNIQUE DEFAULT NEWID(),
Stream VARBINARY(MAX) FILESTREAM DEFAULT(0x)
)
", true);
}
它不起作用,因为即使主文件组存在并且它是默认的,SQL Server也会忽略这一点并输出以下内容:
默认FILESTREAM文件组在数据库中不可用
好的,我尝试自己创建文件组并将其设为默认值:
Sql(@"
IF NOT EXISTS (SELECT * FROM sys.filegroups where name = 'FileStreamGroup')
BEGIN
ALTER DATABASE CURRENT
ADD FILEGROUP FileStreamGroup
END
", true);
Sql(@"
IF EXISTS (SELECT * FROM sys.filegroups where name = 'FileStreamGroup')
BEGIN
ALTER DATABASE CURRENT
MODIFY FILEGROUP FileStreamGroup DEFAULT
END
", true);
Sql(@"
CREATE TABLE FileStreams
(
Id BIGINT IDENTITY PRIMARY KEY,
RowId uniqueidentifier ROWGUIDCOL NOT NULL UNIQUE DEFAULT NEWID(),
Stream VARBINARY(MAX) FILESTREAM DEFAULT(0x)
)
", true);
但是,duh,它不起作用,并且吐出了这个:
无法更改空文件组“FileStreamGroup”的属性。文件组必须至少包含一个文件
为什么它需要文件是我无法回答的问题。我只是想创建一个存储大文件的表,但遇到了一个异常,它告诉我先创建那个些文件-*b打开*
所以,这里有一个现实的问题——现在有可能做到吗?因为这里的每一个答案都是如此,在互联网上,这似乎是一个非常死气沉沉的特征。好像没有人用这个,答案也太旧了。@rene我们不是在说文件组看看文档-为组提供的文件名实际上不是一个文件,而是一个字典。有没有办法通过本地(而不是绝对)路径添加这个“字典”?我希望它易于部署。试试这个:我认为这不是我需要的。我希望这是从代码尽可能多。无需任何人手动配置整个数据库。