Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架中的SQL Server文件流?_C#_Sql Server_Entity Framework - Fatal编程技术网

C# 实体框架中的SQL Server文件流?

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

如何在实体框架中使用文件流?我知道它不支持文件流,所以我决定只使用原始SQL,只用于文件

首先,我尝试运行自定义脚本,确定:

    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我们不是在说文件组看看文档-为组提供的文件名实际上不是一个文件,而是一个字典。有没有办法通过本地(而不是绝对)路径添加这个“字典”?我希望它易于部署。试试这个:我认为这不是我需要的。我希望这是从代码尽可能多。无需任何人手动配置整个数据库。