3
3
using System . Linq ;
4
4
using System . Text ;
5
5
using NUnit . Framework ;
6
+ using ServiceStack . DataAnnotations ;
7
+ using ServiceStack . OrmLite . Dapper ;
6
8
7
9
namespace ServiceStack . OrmLite . SqlServerTests
8
10
{
@@ -27,9 +29,44 @@ public void Can_GetLastInsertedId_using_InsertParam()
27
29
{
28
30
con . CreateTable < SimpleType > ( true ) ;
29
31
30
- var lastInsertId = con . Insert ( testObject , selectIdentity : true ) ;
32
+ var lastInsertId = con . Insert ( testObject , selectIdentity : true ) ;
31
33
Assert . That ( lastInsertId , Is . GreaterThan ( 0 ) , "with InsertParam" ) ;
32
34
}
33
35
}
36
+
37
+ public class ServerGuid
38
+ {
39
+ [ Default ( typeof ( Guid ) , "newid()" ) ]
40
+ public Guid Id { get ; set ; }
41
+
42
+ public string Name { get ; set ; }
43
+ }
44
+
45
+ [ Test ]
46
+ public void Can_retrieve_ServerGuid ( )
47
+ {
48
+ using ( var db = OpenDbConnection ( ) )
49
+ using ( var cmd = db . CreateCommand ( ) )
50
+ {
51
+ db . DropAndCreateTable < ServerGuid > ( ) ;
52
+
53
+ var obj = new ServerGuid { Name = "foo" } ;
54
+
55
+ cmd . GetDialectProvider ( ) . PrepareParameterizedInsertStatement < ServerGuid > ( cmd ,
56
+ insertFields : OrmLiteUtils . GetNonDefaultValueInsertFields ( obj ) ) ;
57
+
58
+ cmd . CommandText = cmd . CommandText . Replace ( "VALUES" , "OUTPUT inserted.Id VALUES" ) ;
59
+
60
+ cmd . GetDialectProvider ( ) . SetParameterValues < ServerGuid > ( cmd , obj ) ;
61
+
62
+ var id = ( Guid ) cmd . ExecuteScalar ( ) ;
63
+
64
+ Assert . That ( id , Is . Not . EqualTo ( default ( Guid ) ) ) ;
65
+
66
+ var insertedRow = db . SingleById < ServerGuid > ( id ) ;
67
+
68
+ Assert . That ( insertedRow . Name , Is . EqualTo ( "foo" ) ) ;
69
+ }
70
+ }
34
71
}
35
72
}
0 commit comments