【问题标题】:Is there a workaround to enable FILESTREAM in the code first approach of entity framework是否有在实体框架的代码优先方法中启用 FILESTREAM 的解决方法
【发布时间】:2015-09-19 04:16:17
【问题描述】:

经过大量谷歌搜索,我得出了三个结论,即在 MVC 4(实体框架)之前,不直接支持 FILESTREAM(Sql server)。

有解决办法吗?

【问题讨论】:

    标签: sql-server-2008 entity-framework blob filestream


    【解决方案1】:

    首先使用 FileStream Near Entity Framework Code 的最佳方式是这样的: 在您的模型中有一个具有 byte[] 类型的字段,并且在向上迁移的方法中编写此代码:

     DropColumn("dbo.Judges", "Photo");
     Sql("alter table [dbo].[Judges] add [PhotoTemp] varbinary(max) FILESTREAM not null");
     RenameColumn("dbo.Judges", "PhotoTemp", "Photo");
     Sql("alter table [dbo].[Judges] add constraint [DF_Judges_Photo] default(0x) for [Photo]");
    

    【讨论】:

    • 我希望这对任何读者来说都是显而易见的,但以防万一。这将删除您在该列中的所有数据!
    【解决方案2】:

    不幸的是,EF 6 中没有等效的 FILESTREAM 可以与 Code First 方法一起使用。我今天找到了一个解决方法,但还没有尝试过:

    http://ignoringthevoices.blogspot.co.uk/2014/01/working-with-entity-framework-code.html

    基本上,您需要先使用数据库并创建 VARBINARY(max) 类型的列。然后告诉 EF 在自动映射时忽略它,并使用自定义 sql 查询来读取/写入内容。

    希望对您有所帮助。

    【讨论】:

    • 太棒了。当您尝试时,让我们知道它是如何进行的。我将在我最初发布此内容的项目的增强阶段进行尝试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多