C# 如何将Castle ActiveRecord与SQL Server 2008文件流功能一起使用

C# 如何将Castle ActiveRecord与SQL Server 2008文件流功能一起使用,c#,sql-server-2008,filestream,castle-activerecord,C#,Sql Server 2008,Filestream,Castle Activerecord,我想使用SQLServer2008的FILESTREAM功能将图像(C#)保存到数据库中 我在SQLServer2008中配置并启用了FILESTREAM,没有任何问题 如何从SQLServer通过CastleActiveRecord使用此新功能将图像保存到数据库中 为了告诉castle activerecord使用FILESTREAM,是否必须添加属性 假设我有以下课程: [ActiveRecord] public class Picture : ActiveRecordBase { [

我想使用SQLServer2008的FILESTREAM功能将图像(C#)保存到数据库中

我在SQLServer2008中配置并启用了FILESTREAM,没有任何问题

如何从SQLServer通过CastleActiveRecord使用此新功能将图像保存到数据库中

为了告诉castle activerecord使用FILESTREAM,是否必须添加属性

假设我有以下课程:

[ActiveRecord]
public class Picture : ActiveRecordBase
{
   [PrimaryKey]
   public int Id { get; set; }

   [Property]
   public byte[] PictureData { get; set; }
}
这足以使用SQL SERVER的FILESTREAM功能吗?我还没有找到太多将CastleActiveRecord(NHibernate)与FILESTREAM结合使用的示例

谢谢

编辑:我不确定发生了什么事。看起来无论我做什么,图像数据都直接保存到数据库中,而不是像SQLServer2008文件流文档中提到的那样使用NTFS文件系统

上面的PictureData属性现在如下所示:

[Property(SqlType = "VARBINARY(MAX)"]
public byte[] PictureData { get; set; }
编辑

我发现Castle ActiveRecord将PictureData字段创建为
varbinary(max)
类型,但它应该是
varbinary(max)FILESTREAM


你如何告诉Castle ActiveRecord创建这样一个字段?

我找到了我自己问题的答案

这就是您需要定义Castle ActiveRecord属性以启用FileStream的方式

[Property(Unique = true, NotNull = true, SqlType = "UNIQUEIDENTIFIER ROWGUIDCOL", Default = "(newid())")]
public Guid ImageGuid { get; set; }

[Property(SqlType = "VARBINARY(MAX) FILESTREAM")]
public byte[] ImageFile { get; set; }
这应该能帮助一些人。这方面的信息不多