1+ using System ;
2+ using Microsoft . SqlServer . Types ;
3+ using NUnit . Framework ;
4+ using ServiceStack . DataAnnotations ;
5+ using ServiceStack . Text ;
6+
7+ namespace ServiceStack . OrmLite . SqlServerTests . Converters
8+ {
9+ [ TestFixture ]
10+ public class FileStreamTests : SqlServerConvertersOrmLiteTestBase
11+ {
12+ [ Explicit ( "Requires FileGroups enabled in DB" ) ]
13+ [ Test ]
14+ public void Can_select_from_FileStream ( )
15+ {
16+ using ( var db = OpenDbConnection ( ) )
17+ {
18+ db . DropAndCreateTable < FileStream > ( ) ;
19+
20+ db . Insert ( new FileStream
21+ {
22+ ID = Guid . NewGuid ( ) ,
23+ Name = "file.txt" ,
24+ Path = SqlHierarchyId . Parse ( "/1/2/3/" ) ,
25+ ParentPath = SqlHierarchyId . Parse ( "/1/2/" ) ,
26+ FileContent = "contents" . ToUtf8Bytes ( ) ,
27+ FileType = MimeTypes . PlainText ,
28+ } ) ;
29+
30+ //db.Select<FileStream>().PrintDump();
31+
32+ var q = db . From < FileStream > ( ) ;
33+ db . Select ( q ) ;
34+ }
35+ }
36+ }
37+
38+
39+ public class FileStream
40+ {
41+ [ PrimaryKey ]
42+ [ Alias ( "stream_id" ) ]
43+ public Guid ID { get ; set ; }
44+
45+ //[CustomField("varbinary(max) FILESTREAM")]
46+ [ Alias ( "file_stream" ) ]
47+ //[DataAnnotations.Ignore]
48+ public byte [ ] FileContent { get ; set ; }
49+
50+ [ Alias ( "name" ) ]
51+ [ StringLength ( 255 ) ]
52+ public string Name { get ; set ; }
53+
54+ [ Alias ( "path_locator" ) ]
55+ public SqlHierarchyId Path { get ; set ; }
56+
57+ //[ForeignKey(typeof(FileStream))]
58+ [ Alias ( "parent_path_locator" ) ]
59+ public SqlHierarchyId ? ParentPath { get ; set ; }
60+
61+ [ Alias ( "file_type" ) ]
62+ [ Compute ]
63+ [ StringLength ( 255 ) ]
64+ public string FileType { get ; set ; }
65+
66+ [ Alias ( "cached_file_size" ) ]
67+ [ Compute ]
68+ public long ? FileSize { get ; set ; }
69+
70+ [ Alias ( "creation_time" ) ]
71+ public DateTimeOffset CreationDateTime { get ; set ; }
72+
73+ [ Alias ( "last_write_time" ) ]
74+ public DateTimeOffset LastWriteDateTime { get ; set ; }
75+
76+ [ Alias ( "last_access_time" ) ]
77+ public DateTimeOffset ? LastAccessDateTime { get ; set ; }
78+
79+ [ Alias ( "is_directory" ) ]
80+ public bool IsDirectory { get ; set ; }
81+
82+ [ Alias ( "is_offline" ) ]
83+ public bool IsOffline { get ; set ; }
84+
85+ [ Alias ( "is_hidden" ) ]
86+ public bool IsHidden { get ; set ; }
87+
88+ [ Alias ( "is_readonly" ) ]
89+ public bool IsReadOnly { get ; set ; }
90+
91+ [ Alias ( "is_archive" ) ]
92+ public bool IsArchive { get ; set ; }
93+
94+ [ Alias ( "is_system" ) ]
95+ public bool IsSystem { get ; set ; }
96+
97+ [ Alias ( "is_temporary" ) ]
98+ public bool IsTemporary { get ; set ; }
99+
100+ [ CustomSelect ( "file_stream.GetFileNamespacePath() + (CASE WHEN is_directory = 1 THEN '\' ELSE '' END)" ) ]
101+ public string FullPath { get ; set ; }
102+ }
103+ }
0 commit comments