@@ -29,6 +29,8 @@ public virtual Task Basic_cosmos_model()
29
29
eb . HasPartitionKey ( "PartitionId" ) ;
30
30
eb . HasKey ( "Id" , "PartitionId" ) ;
31
31
eb . ToContainer ( "DataContainer" ) ;
32
+ eb . Property < Dictionary < string , string [ ] > > ( "Map" ) ;
33
+ eb . Property < List < Dictionary < string , int > > > ( "List" ) ;
32
34
eb . UseETagConcurrency ( ) ;
33
35
eb . HasNoDiscriminator ( ) ;
34
36
eb . Property ( d => d . Blob ) . ToJsonProperty ( "JsonBlob" ) ;
@@ -94,6 +96,38 @@ public virtual Task Basic_cosmos_model()
94
96
Assert . NotNull ( partitionId . GetValueComparer ( ) ) ;
95
97
Assert . NotNull ( partitionId . GetKeyValueComparer ( ) ) ;
96
98
99
+ var map = dataEntity . FindProperty ( "Map" ) ! ;
100
+ Assert . Equal ( typeof ( Dictionary < string , string [ ] > ) , map . ClrType ) ;
101
+ Assert . Null ( map . PropertyInfo ) ;
102
+ Assert . Null ( map . FieldInfo ) ;
103
+ Assert . True ( map . IsNullable ) ;
104
+ Assert . False ( map . IsConcurrencyToken ) ;
105
+ Assert . False ( map . IsPrimitiveCollection ) ;
106
+ Assert . Equal ( ValueGenerated . Never , map . ValueGenerated ) ;
107
+ Assert . Equal ( PropertySaveBehavior . Save , map . GetAfterSaveBehavior ( ) ) ;
108
+ Assert . Equal ( PropertySaveBehavior . Save , map . GetBeforeSaveBehavior ( ) ) ;
109
+ Assert . Equal ( "Map" , CosmosPropertyExtensions . GetJsonPropertyName ( map ) ) ;
110
+ Assert . Null ( map . GetValueGeneratorFactory ( ) ) ;
111
+ Assert . Null ( map . GetValueConverter ( ) ) ;
112
+ Assert . NotNull ( map . GetValueComparer ( ) ) ;
113
+ Assert . NotNull ( map . GetKeyValueComparer ( ) ) ;
114
+
115
+ var list = dataEntity . FindProperty ( "List" ) ! ;
116
+ Assert . Equal ( typeof ( List < Dictionary < string , int > > ) , list . ClrType ) ;
117
+ Assert . Null ( list . PropertyInfo ) ;
118
+ Assert . Null ( list . FieldInfo ) ;
119
+ Assert . True ( list . IsNullable ) ;
120
+ Assert . False ( list . IsConcurrencyToken ) ;
121
+ Assert . False ( list . IsPrimitiveCollection ) ;
122
+ Assert . Equal ( ValueGenerated . Never , list . ValueGenerated ) ;
123
+ Assert . Equal ( PropertySaveBehavior . Save , list . GetAfterSaveBehavior ( ) ) ;
124
+ Assert . Equal ( PropertySaveBehavior . Save , list . GetBeforeSaveBehavior ( ) ) ;
125
+ Assert . Equal ( "List" , CosmosPropertyExtensions . GetJsonPropertyName ( list ) ) ;
126
+ Assert . Null ( list . GetValueGeneratorFactory ( ) ) ;
127
+ Assert . Null ( list . GetValueConverter ( ) ) ;
128
+ Assert . NotNull ( list . GetValueComparer ( ) ) ;
129
+ Assert . NotNull ( list . GetKeyValueComparer ( ) ) ;
130
+
97
131
var eTag = dataEntity . FindProperty ( "_etag" ) ! ;
98
132
Assert . Equal ( typeof ( string ) , eTag . ClrType ) ;
99
133
Assert . Null ( eTag . PropertyInfo ) ;
@@ -143,7 +177,7 @@ public virtual Task Basic_cosmos_model()
143
177
144
178
Assert . Equal ( 2 , dataEntity . GetKeys ( ) . Count ( ) ) ;
145
179
146
- Assert . Equal ( [ id , partitionId , blob , storeId , jObject , eTag ] , dataEntity . GetProperties ( ) ) ;
180
+ Assert . Equal ( [ id , partitionId , blob , list , map , storeId , jObject , eTag ] , dataEntity . GetProperties ( ) ) ;
147
181
} ) ;
148
182
149
183
protected override void BuildBigModel ( ModelBuilder modelBuilder , bool jsonColumns )
0 commit comments