2011-01-29 62 views
3

我想使用FILESTREAM功能從SQL Server保存圖像(C#)到數據庫2008如何使用城堡的ActiveRecord與SQL Server 2008 FILESTREAM功能

我已經配置和SQL Server中啓用FILESTREAM 2008沒有任何問題。

如何通過Castle ActiveRecord從SQL Server使用此新功能將圖像保存到數據庫。

是否有一個屬性屬性,我必須添加爲了告訴城堡activerecord使用FILESTREAM?

假設我有以下類:

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

    [Property] 
    public byte[] PictureData { get; set; } 
} 

這是足夠使用從SQL Server FILESTREAM功能?我還沒有發現很多使用Castle ActiveRecord(NHibernate)和FILESTREAM的例子。

謝謝!

編輯:我不確定發生了什麼事。看起來像我所做的一樣,圖像數據直接保存到數據庫中,而不是像SQL SERVER 2008 FileStream文檔中提到的那樣使用NTFS文件系統。

以上PictureData屬性現在看起來是這樣的:

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

編輯

我發現城堡的ActiveRecord創建PictureData字段作爲varbinary(max)類型,但它應該是VARBINARY(MAX) FILESTREAM

你如何告訴Castle ActiveRecord創建這樣一個領域?

回答

3

那麼我找到了我自己的問題的答案。

這是您如何定義您的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; } 

這應該有助於一些人在那裏。關於這個不多的信息!