Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

v 1.2.8 - build

  • Loading branch information...
commit b076ecd279d4b2406f72e3d0d2658353cef1a98c 1 parent a249536
jtraband authored April 05, 2013

Showing 148 changed files with 68,961 additions and 6,136 deletions. Show diff stats Hide diff stats

  1. 2  Breeze.Client/Scripts/IBlade/_head.jsfrag
  2. 6  Breeze.Client/Scripts/IBlade/a40_entityMetadata.js
  3. 38  Breeze.Client/Scripts/IBlade/a55_emOptions.js
  4. 2  Breeze.Client/Scripts/breeze.base.debug.js
  5. 2  Breeze.Client/Scripts/breeze.base.min.js
  6. 2  Breeze.Client/Scripts/breeze.debug.js
  7. 60  Breeze.Client/Scripts/breeze.intellisense.js
  8. 2  Breeze.Client/Scripts/breeze.min.js
  9. 60  Breeze.Intellisense/breeze.intellisense.js
  10. BIN  Breeze.WebApi/Breeze.WebApi.dll
  11. BIN  BuildRelease.ps1
  12. 486  Nuget.builds/Breeze.WebApi/content/Scripts/breeze.base.debug.js
  13. 8  Nuget.builds/Breeze.WebApi/content/Scripts/breeze.base.min.js
  14. 8  Nuget.builds/Breeze.WebApi/content/Scripts/breeze.min.js
  15. 4  Nuget.builds/Breeze.WebApiSample/Breeze.WebApiSample.nuspec
  16. 1  PackageRelease.ps1
  17. 6  Samples/CarBones/CarBones/CarBones.csproj
  18. 504  Samples/CarBones/CarBones/Scripts/breeze.debug.js
  19. 43  Samples/CarBones/CarBones/Scripts/breeze.intellisense.js
  20. 4  Samples/CarBones/CarBones/packages.config
  21. 6  Samples/DocCode/DocCode/DocCode.csproj
  22. 4  Samples/DocCode/DocCode/packages.config
  23. 6  Samples/NoDb/NoDb/NoDb.csproj
  24. 4  Samples/NoDb/NoDb/packages.config
  25. 6  Samples/Todo-Angular/Todo-Angular/Todo-Angular.csproj
  26. 4  Samples/Todo-Angular/Todo-Angular/packages.config
  27. 6  Samples/Todo-AngularWithDI/Todo-AngularWithDI/Todo-AngularWithDI.csproj
  28. 4  Samples/Todo-AngularWithDI/Todo-AngularWithDI/packages.config
  29. 6  Samples/Todo-Require/Todo-Require/Todo-Require.csproj
  30. 4  Samples/Todo-Require/Todo-Require/packages.config
  31. 6  Samples/Todo/Todo/Todo.csproj
  32. 4  Samples/Todo/Todo/packages.config
  33. 0  {Samples → Samples_Unpublished}/BreezyDevices/.nuget/NuGet.Config
  34. 0  {Samples → Samples_Unpublished}/BreezyDevices/.nuget/NuGet.exe
  35. 0  {Samples → Samples_Unpublished}/BreezyDevices/.nuget/NuGet.targets
  36. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices.sln
  37. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/App_Data/readme.txt
  38. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/App_Start/BreezeWebApiConfig.cs
  39. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/App_Start/FilterConfig.cs
  40. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/App_Start/RouteConfig.cs
  41. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/App_Start/WebApiConfig.cs
  42. 6  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/BreezyDevices.csproj
  43. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Content/breezydevices.css
  44. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Content/reset.css
  45. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Controllers/BreezyDevicesController.cs
  46. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Controllers/HomeController.cs
  47. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Global.asax
  48. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Global.asax.cs
  49. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Images/device.png
  50. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Images/save.png
  51. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Models/BreezyDevicesContext.cs
  52. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Models/BreezyDevicesDatabaseInitializer.cs
  53. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Models/Device.cs
  54. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Models/Person.cs
  55. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Properties/AssemblyInfo.cs
  56. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Scripts/_references.js
  57. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Scripts/app/dataservice.js
  58. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Scripts/app/logger.js
  59. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Scripts/app/main.js
  60. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Scripts/app/peopleViewModel.js
  61. 13,268  Samples_Unpublished/BreezyDevices/BreezyDevices/Scripts/breeze.debug.js
  62. 2,551  Samples_Unpublished/BreezyDevices/BreezyDevices/Scripts/breeze.intellisense.js
  63. 4  Samples_Unpublished/BreezyDevices/BreezyDevices/Scripts/breeze.min.js
  64. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Scripts/jquery-1.8.2.intellisense.js
  65. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Scripts/jquery-1.8.2.js
  66. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Scripts/jquery-1.8.2.min.js
  67. 6,886  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Scripts/knockout-2.1.0.debug.js
  68. 172  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Scripts/knockout-2.1.0.js
  69. 2,786  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Scripts/modernizr-2.6.2.js
  70. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Scripts/q.js
  71. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Scripts/q.min.js
  72. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Views/Home/Index.cshtml
  73. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Views/Web.config
  74. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Web.Debug.config
  75. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Web.Release.config
  76. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/Web.config
  77. 0  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/favicon.ico
  78. 4  {Samples → Samples_Unpublished}/BreezyDevices/BreezyDevices/packages.config
  79. 6  Samples_Unpublished/GitHub-Angular/.nuget/NuGet.Config
  80. BIN  Samples_Unpublished/GitHub-Angular/.nuget/NuGet.exe
  81. 153  Samples_Unpublished/GitHub-Angular/.nuget/NuGet.targets
  82. 27  Samples_Unpublished/GitHub-Angular/GitHub-Angular.sln
  83. BIN  Samples_Unpublished/GitHub-Angular/GitHub-Angular/App_Data/Todos.sdf
  84. 3  Samples_Unpublished/GitHub-Angular/GitHub-Angular/App_Data/readme.txt
  85. 96  Samples_Unpublished/GitHub-Angular/GitHub-Angular/App_Start/BreezeSimpleCorsHandler.cs
  86. 22  Samples_Unpublished/GitHub-Angular/GitHub-Angular/App_Start/BreezeWebApiConfig.cs
  87. 43  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Content/reset.css
  88. 176  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Content/toastr.css
  89. 198  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Content/todo.css
  90. 81  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Controllers/TodosController.cs
  91. 222  Samples_Unpublished/GitHub-Angular/GitHub-Angular/GitHub-Angular.csproj
  92. 83  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Index.html
  93. 64  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Models/TodoDatabaseInitializer.cs
  94. 16  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Models/TodoItem.cs
  95. 14  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Models/TodosContext.cs
  96. 35  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Properties/AssemblyInfo.cs
  97. BIN  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Scripts/_references.js
  98. 14,531  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Scripts/angular.js
  99. 159  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Scripts/angular.min.js
  100. 183  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Scripts/app/controller.js
  101. 114  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Scripts/app/dataservice.js
  102. 44  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Scripts/app/logger.js
  103. 35  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Scripts/app/main.js
  104. 13,268  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Scripts/breeze.debug.js
  105. 2,551  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Scripts/breeze.intellisense.js
  106. 4  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Scripts/breeze.min.js
  107. 148  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Scripts/breeze.savequeuing.js
  108. 2,494  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Scripts/jquery-1.8.3.intellisense.js
  109. 9,472  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Scripts/jquery-1.8.3.js
  110. 2  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Scripts/jquery-1.8.3.min.js
  111. 1,481  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Scripts/q.js
  112. 1  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Scripts/q.min.js
  113. 207  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Scripts/toastr.js
  114. 30  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Web.Debug.config
  115. 31  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Web.Release.config
  116. 50  Samples_Unpublished/GitHub-Angular/GitHub-Angular/Web.config
  117. BIN  Samples_Unpublished/GitHub-Angular/GitHub-Angular/favicon.ico
  118. 23  Samples_Unpublished/GitHub-Angular/GitHub-Angular/packages.config
  119. 46  _Internal/Model_NorthwindIB_EDMX_2012/NorthwindIB_2012.Context.cs
  120. 8  apidocs/classes/AutoGeneratedKeyType.html
  121. 28  apidocs/classes/ComplexType.html
  122. 34  apidocs/classes/DataProperty.html
  123. 14  apidocs/classes/DataService.html
  124. 168  apidocs/classes/EntityManager.html
  125. 10  apidocs/classes/EntityQuery.html
  126. 54  apidocs/classes/EntityType.html
  127. 20  apidocs/classes/FilterQueryOp.html
  128. 4  apidocs/classes/JsonResultsAdapter.html
  129. 3  apidocs/classes/LocalQueryComparisonOptions.html
  130. 10  apidocs/classes/MetadataStore.html
  131. 3  apidocs/classes/NamingConvention.html
  132. 26  apidocs/classes/NavigationProperty.html
  133. 26  apidocs/classes/Predicate.html
  134. 158  apidocs/classes/QueryOptions.html
  135. 316  apidocs/classes/SaveOptions.html
  136. 21  apidocs/classes/ValidationOptions.html
  137. 4  apidocs/classes/config.html
  138. 586  apidocs/data.json
  139. 48  apidocs/files/a01_coreFns.js.html
  140. 7  apidocs/files/a05_assertParam.js.html
  141. 2  apidocs/files/a05_enum.js.html
  142. 3  apidocs/files/a20_config.js.html
  143. 2  apidocs/files/a30_entityAspect.js.html
  144. 40  apidocs/files/a40_entityMetadata.js.html
  145. 22  apidocs/files/a45_entityQuery.js.html
  146. 10  apidocs/files/a45_relationArray.js.html
  147. 234  apidocs/files/a50_entityManager.js.html
  148. 148  apidocs/files/a55_emOptions.js.html
2  Breeze.Client/Scripts/IBlade/_head.jsfrag
@@ -21,7 +21,7 @@
21 21
 
22 22
 })(function () {  
23 23
     var breeze = {
24  
-        version: "1.2.7",
  24
+        version: "1.2.8",
25 25
         metadataVersion: "1.0.2"
26 26
     };
27 27
 
6  Breeze.Client/Scripts/IBlade/a40_entityMetadata.js
@@ -77,7 +77,8 @@ var LocalQueryComparisonOptions = (function () {
77 77
     ctor.defaultInstance = new ctor(ctor.caseInsensitiveSQL);
78 78
 
79 79
     /**
80  
-    Make this instance to the default instance and populates all unset properties with existing default values.
  80
+    Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance. 
  81
+    The current instance is returned unchanged.
81 82
     @method setAsDefault
82 83
     @example
83 84
         var lqco = new LocalQueryComparisonOptions({
@@ -197,7 +198,8 @@ var NamingConvention = (function () {
197 198
     ctor.defaultInstance = new ctor(ctor.none);
198 199
         
199 200
     /**
200  
-    Make this instance to the default instance and populates all unset properties with existing default values.
  201
+    Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance. 
  202
+    The current instance is returned unchanged.
201 203
     @method setAsDefault
202 204
     @example
203 205
         var namingConv = new NamingConvention({
38  Breeze.Client/Scripts/IBlade/a55_emOptions.js
@@ -103,6 +103,18 @@ var QueryOptions = (function () {
103 103
     __readOnly__
104 104
     @property mergeStrategy {MergeStrategy}
105 105
     **/
  106
+    
  107
+    /**
  108
+    A {{#crossLink "DataService"}}{{/crossLink}}. 
  109
+    __readOnly__
  110
+    @property dataService {DataService}
  111
+    **/
  112
+    
  113
+    /**
  114
+    A {{#crossLink "JsonResultsAdapter"}}{{/crossLink}}.
  115
+    __readOnly__
  116
+    @property jsonResultsAdapter {JsonResultsAdapter}
  117
+    **/
106 118
 
107 119
     proto._$typeName = "QueryOptions";
108 120
 
@@ -150,7 +162,8 @@ var QueryOptions = (function () {
150 162
     };
151 163
         
152 164
     /**
153  
-    Make this instance to the default instance and populates all unset properties with existing default values.
  165
+    Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance. 
  166
+    The current instance is returned unchanged.
154 167
     @method setAsDefault
155 168
     @example
156 169
         var newQo = new QueryOptions( { mergeStrategy: MergeStrategy.OverwriteChanges });
@@ -217,7 +230,8 @@ var SaveOptions = (function () {
217 230
     proto._$typeName = "SaveOptions";
218 231
         
219 232
     /**
220  
-    Make this instance to the default instance and populates all unset properties with existing default values.
  233
+    Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance. 
  234
+    The current instance is returned unchanged.
221 235
     @method setAsDefault
222 236
     @chainable
223 237
     **/
@@ -231,6 +245,18 @@ var SaveOptions = (function () {
231 245
     __readOnly__
232 246
     @property allowConcurrentSaves {Boolean}
233 247
     **/
  248
+    
  249
+    /**
  250
+    A {{#crossLink "DataService"}}{{/crossLink}}. 
  251
+    __readOnly__
  252
+    @property dataService {DataService}
  253
+    **/
  254
+
  255
+    /**
  256
+    The resource name to call to perform the save.
  257
+    __readOnly__
  258
+    @property resourceName {String}
  259
+    **/
234 260
 
235 261
     /**
236 262
     A free form value that will be sent to the server.
@@ -252,7 +278,10 @@ var SaveOptions = (function () {
252 278
     
253 279
     @method using
254 280
     @param config {Configuration Object|} The object to apply to create a new SaveOptions.
255  
-    @return {SaveOptions}
  281
+    @param [config.allowConcurrentSaves] {Boolean} Whether multiple saves can be in-flight at the same time. The default is false.
  282
+    @param [config.resourceName] {String} Resource name to be used during the save - this defaults to "SaveChanges"
  283
+    @param [config.dataService] {DataService} The DataService to be used for this save.
  284
+    @param [config.tag] {Object} Free form value that will be sent to the server during the save. 
256 285
     @chainable
257 286
     **/
258 287
     proto.using = function (config) {
@@ -353,7 +382,8 @@ var ValidationOptions = (function () {
353 382
     };
354 383
 
355 384
     /**
356  
-    Make this instance to the default instance and populates all unset properties with existing default values.
  385
+    Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance. 
  386
+    The current instance is returned unchanged.
357 387
     @example
358 388
         var validationOptions = new ValidationOptions()
359 389
         var newOptions = validationOptions.using( { validateOnQuery: true, validateOnSave: false} );
2  Breeze.Client/Scripts/breeze.base.debug.js
@@ -21,7 +21,7 @@
21 21
 
22 22
 })(function () {  
23 23
     var breeze = {
24  
-        version: "1.2.7",
  24
+        version: "1.2.8",
25 25
         metadataVersion: "1.0.2"
26 26
     };
27 27
 
2  Breeze.Client/Scripts/breeze.base.min.js
1 addition, 1 deletion not shown
2  Breeze.Client/Scripts/breeze.debug.js
@@ -21,7 +21,7 @@
21 21
 
22 22
 })(function () {  
23 23
     var breeze = {
24  
-        version: "1.2.7",
  24
+        version: "1.2.8",
25 25
         metadataVersion: "1.0.2"
26 26
     };
27 27
 
60  Breeze.Client/Scripts/breeze.intellisense.js
... ...
@@ -1,4 +1,4 @@
1  
-// Generated on: Tue Mar 26 2013 10:49:30 GMT-0700 (Pacific Daylight Time)
  1
+// Generated on: Fri Apr 05 2013 23:04:48 GMT-0700 (Pacific Daylight Time)
2 2
 
3 3
 intellisense.annotate(breeze.core, {
4 4
 
@@ -1142,7 +1142,8 @@ intellisense.annotate(breeze.breeze.LocalQueryComparisonOptions.prototype, {
1142 1142
   'setAsDefault': function() {
1143 1143
     /// <signature>
1144 1144
     ///   <summary>
1145  
-    ///   Makes this instance the default instance.
  1145
+    ///   Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance. 
  1146
+    ///   The current instance is returned unchanged.
1146 1147
     ///   </summary>
1147 1148
     
1148 1149
     /// </signature>
@@ -1185,7 +1186,8 @@ intellisense.annotate(breeze.breeze.NamingConvention.prototype, {
1185 1186
   'setAsDefault': function() {
1186 1187
     /// <signature>
1187 1188
     ///   <summary>
1188  
-    ///   Makes this instance the default instance.
  1189
+    ///   Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance. 
  1190
+    ///   The current instance is returned unchanged.
1189 1191
     ///   </summary>
1190 1192
     
1191 1193
     /// </signature>
@@ -2096,6 +2098,16 @@ intellisense.annotate(breeze.breeze.Predicate, {
2096 2098
 
2097 2099
 intellisense.annotate(breeze.breeze.EntityManager.prototype, {
2098 2100
   
  2101
+  'setProperties': function() {
  2102
+    /// <signature>
  2103
+    ///   <summary>
  2104
+    ///   General purpose property set method.  Any of the properties documented below 
  2105
+    ///   may be set.
  2106
+    ///   </summary>
  2107
+    ///   <param name="config" type="Object" optional="true"></param>
  2108
+    
  2109
+    /// </signature>
  2110
+  },
2099 2111
   'createEntity': function() {
2100 2112
     /// <signature>
2101 2113
     ///   <summary>
@@ -2138,16 +2150,6 @@ intellisense.annotate(breeze.breeze.EntityManager.prototype, {
2138 2150
     
2139 2151
     /// </signature>
2140 2152
   },
2141  
-  'setProperties': function() {
2142  
-    /// <signature>
2143  
-    ///   <summary>
2144  
-    ///   General purpose property set method.  Any of the properties documented below 
2145  
-    ///   may be set.
2146  
-    ///   </summary>
2147  
-    ///   <param name="config" type="Object" optional="true"></param>
2148  
-    
2149  
-    /// </signature>
2150  
-  },
2151 2153
   'createEmptyCopy': function() {
2152 2154
     /// <signature>
2153 2155
     ///   <summary>
@@ -2406,14 +2408,15 @@ intellisense.annotate(breeze.breeze.QueryOptions.prototype, {
2406 2408
     ///   Returns a copy of this QueryOptions with the specified  'MergeStrategy' 
2407 2409
     ///   or  'FetchStrategy' applied.
2408 2410
     ///   </summary>
2409  
-    ///   <param name="config" type="Configuration Object|MergeStrategy|FetchStrategy" optional="true">The object to apply to create a new QueryOptions.</param>
  2411
+    ///   <param name="config" type="Configuration Object|MergeStrategy|FetchStrategy|DataService|JsonResultsAdapter" optional="true">The object to apply to create a new QueryOptions.</param>
2410 2412
     ///   <returns type="breeze.breeze.QueryOptions" ></returns>
2411 2413
     /// </signature>
2412 2414
   },
2413 2415
   'setAsDefault': function() {
2414 2416
     /// <signature>
2415 2417
     ///   <summary>
2416  
-    ///   Makes this instance the default instance.
  2418
+    ///   Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance. 
  2419
+    ///   The current instance is returned unchanged.
2417 2420
     ///   </summary>
2418 2421
     
2419 2422
     /// </signature>
@@ -2425,6 +2428,12 @@ intellisense.annotate(breeze.breeze.QueryOptions.prototype, {
2425 2428
   /// <field name="mergeStrategy" type="breeze.breeze.MergeStrategy" >A  'MergeStrategy' __readOnly__</field>
2426 2429
   'mergeStrategy': null,
2427 2430
   
  2431
+  /// <field name="dataService" type="breeze.breeze.DataService" >A  'DataService'.  __readOnly__</field>
  2432
+  'dataService': null,
  2433
+  
  2434
+  /// <field name="jsonResultsAdapter" type="breeze.breeze.JsonResultsAdapter" >A  'JsonResultsAdapter'. __readOnly__</field>
  2435
+  'jsonResultsAdapter': null,
  2436
+  
2428 2437
 });
2429 2438
 intellisense.annotate(breeze.breeze.QueryOptions, {
2430 2439
   
@@ -2439,15 +2448,31 @@ intellisense.annotate(breeze.breeze.SaveOptions.prototype, {
2439 2448
   'setAsDefault': function() {
2440 2449
     /// <signature>
2441 2450
     ///   <summary>
2442  
-    ///   Makes this instance the default instance.
  2451
+    ///   Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance. 
  2452
+    ///   The current instance is returned unchanged.
2443 2453
     ///   </summary>
2444 2454
     
2445 2455
     /// </signature>
2446 2456
   },
  2457
+  'using': function() {
  2458
+    /// <signature>
  2459
+    ///   <summary>
  2460
+    ///   Returns a copy of this SaveOptions with the specified config options applied.
  2461
+    ///   </summary>
  2462
+    ///   <param name="config" type="Configuration Object|" optional="true">The object to apply to create a new SaveOptions.</param>
  2463
+    
  2464
+    /// </signature>
  2465
+  },
2447 2466
   
2448 2467
   /// <field name="allowConcurrentSaves" type="Boolean" >Whether another save can be occuring at the same time as this one - default is false.</field>
2449 2468
   'allowConcurrentSaves': null,
2450 2469
   
  2470
+  /// <field name="dataService" type="breeze.breeze.DataService" >A  'DataService'.  __readOnly__</field>
  2471
+  'dataService': null,
  2472
+  
  2473
+  /// <field name="resourceName" type="String" >The resource name to call to perform the save. __readOnly__</field>
  2474
+  'resourceName': null,
  2475
+  
2451 2476
   /// <field name="tag" type="Object" >A free form value that will be sent to the server.</field>
2452 2477
   'tag': null,
2453 2478
   
@@ -2474,7 +2499,8 @@ intellisense.annotate(breeze.breeze.ValidationOptions.prototype, {
2474 2499
   'setAsDefault': function() {
2475 2500
     /// <signature>
2476 2501
     ///   <summary>
2477  
-    ///   Makes this instance the default instance.
  2502
+    ///   Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance. 
  2503
+    ///   The current instance is returned unchanged.
2478 2504
     ///   </summary>
2479 2505
     
2480 2506
     /// </signature>
2  Breeze.Client/Scripts/breeze.min.js
1 addition, 1 deletion not shown
60  Breeze.Intellisense/breeze.intellisense.js
... ...
@@ -1,4 +1,4 @@
1  
-// Generated on: Tue Mar 26 2013 10:49:30 GMT-0700 (Pacific Daylight Time)
  1
+// Generated on: Fri Apr 05 2013 23:04:48 GMT-0700 (Pacific Daylight Time)
2 2
 
3 3
 intellisense.annotate(breeze.core, {
4 4
 
@@ -1142,7 +1142,8 @@ intellisense.annotate(breeze.breeze.LocalQueryComparisonOptions.prototype, {
1142 1142
   'setAsDefault': function() {
1143 1143
     /// <signature>
1144 1144
     ///   <summary>
1145  
-    ///   Makes this instance the default instance.
  1145
+    ///   Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance. 
  1146
+    ///   The current instance is returned unchanged.
1146 1147
     ///   </summary>
1147 1148
     
1148 1149
     /// </signature>
@@ -1185,7 +1186,8 @@ intellisense.annotate(breeze.breeze.NamingConvention.prototype, {
1185 1186
   'setAsDefault': function() {
1186 1187
     /// <signature>
1187 1188
     ///   <summary>
1188  
-    ///   Makes this instance the default instance.
  1189
+    ///   Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance. 
  1190
+    ///   The current instance is returned unchanged.
1189 1191
     ///   </summary>
1190 1192
     
1191 1193
     /// </signature>
@@ -2096,6 +2098,16 @@ intellisense.annotate(breeze.breeze.Predicate, {
2096 2098
 
2097 2099
 intellisense.annotate(breeze.breeze.EntityManager.prototype, {
2098 2100
   
  2101
+  'setProperties': function() {
  2102
+    /// <signature>
  2103
+    ///   <summary>
  2104
+    ///   General purpose property set method.  Any of the properties documented below 
  2105
+    ///   may be set.
  2106
+    ///   </summary>
  2107
+    ///   <param name="config" type="Object" optional="true"></param>
  2108
+    
  2109
+    /// </signature>
  2110
+  },
2099 2111
   'createEntity': function() {
2100 2112
     /// <signature>
2101 2113
     ///   <summary>
@@ -2138,16 +2150,6 @@ intellisense.annotate(breeze.breeze.EntityManager.prototype, {
2138 2150
     
2139 2151
     /// </signature>
2140 2152
   },
2141  
-  'setProperties': function() {
2142  
-    /// <signature>
2143  
-    ///   <summary>
2144  
-    ///   General purpose property set method.  Any of the properties documented below 
2145  
-    ///   may be set.
2146  
-    ///   </summary>
2147  
-    ///   <param name="config" type="Object" optional="true"></param>
2148  
-    
2149  
-    /// </signature>
2150  
-  },
2151 2153
   'createEmptyCopy': function() {
2152 2154
     /// <signature>
2153 2155
     ///   <summary>
@@ -2406,14 +2408,15 @@ intellisense.annotate(breeze.breeze.QueryOptions.prototype, {
2406 2408
     ///   Returns a copy of this QueryOptions with the specified  'MergeStrategy' 
2407 2409
     ///   or  'FetchStrategy' applied.
2408 2410
     ///   </summary>
2409  
-    ///   <param name="config" type="Configuration Object|MergeStrategy|FetchStrategy" optional="true">The object to apply to create a new QueryOptions.</param>
  2411
+    ///   <param name="config" type="Configuration Object|MergeStrategy|FetchStrategy|DataService|JsonResultsAdapter" optional="true">The object to apply to create a new QueryOptions.</param>
2410 2412
     ///   <returns type="breeze.breeze.QueryOptions" ></returns>
2411 2413
     /// </signature>
2412 2414
   },
2413 2415
   'setAsDefault': function() {
2414 2416
     /// <signature>
2415 2417
     ///   <summary>
2416  
-    ///   Makes this instance the default instance.
  2418
+    ///   Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance. 
  2419
+    ///   The current instance is returned unchanged.
2417 2420
     ///   </summary>
2418 2421
     
2419 2422
     /// </signature>
@@ -2425,6 +2428,12 @@ intellisense.annotate(breeze.breeze.QueryOptions.prototype, {
2425 2428
   /// <field name="mergeStrategy" type="breeze.breeze.MergeStrategy" >A  'MergeStrategy' __readOnly__</field>
2426 2429
   'mergeStrategy': null,
2427 2430
   
  2431
+  /// <field name="dataService" type="breeze.breeze.DataService" >A  'DataService'.  __readOnly__</field>
  2432
+  'dataService': null,
  2433
+  
  2434
+  /// <field name="jsonResultsAdapter" type="breeze.breeze.JsonResultsAdapter" >A  'JsonResultsAdapter'. __readOnly__</field>
  2435
+  'jsonResultsAdapter': null,
  2436
+  
2428 2437
 });
2429 2438
 intellisense.annotate(breeze.breeze.QueryOptions, {
2430 2439
   
@@ -2439,15 +2448,31 @@ intellisense.annotate(breeze.breeze.SaveOptions.prototype, {
2439 2448
   'setAsDefault': function() {
2440 2449
     /// <signature>
2441 2450
     ///   <summary>
2442  
-    ///   Makes this instance the default instance.
  2451
+    ///   Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance. 
  2452
+    ///   The current instance is returned unchanged.
2443 2453
     ///   </summary>
2444 2454
     
2445 2455
     /// </signature>
2446 2456
   },
  2457
+  'using': function() {
  2458
+    /// <signature>
  2459
+    ///   <summary>
  2460
+    ///   Returns a copy of this SaveOptions with the specified config options applied.
  2461
+    ///   </summary>
  2462
+    ///   <param name="config" type="Configuration Object|" optional="true">The object to apply to create a new SaveOptions.</param>
  2463
+    
  2464
+    /// </signature>
  2465
+  },
2447 2466
   
2448 2467
   /// <field name="allowConcurrentSaves" type="Boolean" >Whether another save can be occuring at the same time as this one - default is false.</field>
2449 2468
   'allowConcurrentSaves': null,
2450 2469
   
  2470
+  /// <field name="dataService" type="breeze.breeze.DataService" >A  'DataService'.  __readOnly__</field>
  2471
+  'dataService': null,
  2472
+  
  2473
+  /// <field name="resourceName" type="String" >The resource name to call to perform the save. __readOnly__</field>
  2474
+  'resourceName': null,
  2475
+  
2451 2476
   /// <field name="tag" type="Object" >A free form value that will be sent to the server.</field>
2452 2477
   'tag': null,
2453 2478
   
@@ -2474,7 +2499,8 @@ intellisense.annotate(breeze.breeze.ValidationOptions.prototype, {
2474 2499
   'setAsDefault': function() {
2475 2500
     /// <signature>
2476 2501
     ///   <summary>
2477  
-    ///   Makes this instance the default instance.
  2502
+    ///   Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance. 
  2503
+    ///   The current instance is returned unchanged.
2478 2504
     ///   </summary>
2479 2505
     
2480 2506
     /// </signature>
BIN  Breeze.WebApi/Breeze.WebApi.dll
Binary file not shown
BIN  BuildRelease.ps1
Binary file not shown
486  Nuget.builds/Breeze.WebApi/content/Scripts/breeze.base.debug.js
@@ -21,7 +21,7 @@
21 21
 
22 22
 })(function () {  
23 23
     var breeze = {
24  
-        version: "1.2.7",
  24
+        version: "1.2.8",
25 25
         metadataVersion: "1.0.2"
26 26
     };
27 27
 
@@ -37,12 +37,13 @@
37 37
  @module core
38 38
  **/
39 39
 
40  
-var __hasOwnProperty = Object.prototype.hasOwnProperty;
  40
+var __hasOwnProperty = uncurry(Object.prototype.hasOwnProperty);
  41
+var __arraySlice = uncurry(Array.prototype.slice);
41 42
 
42 43
 // iterate over object
43 44
 function __objectForEach(obj, kvFn) {
44 45
     for (var key in obj) {
45  
-        if (__hasOwnProperty.call(obj, key)) {
  46
+        if (__hasOwnProperty(obj, key)) {
46 47
             kvFn(key, obj[key]);
47 48
         }
48 49
     }
@@ -50,7 +51,7 @@ function __objectForEach(obj, kvFn) {
50 51
     
51 52
 function __objectFirst(obj, kvPredicate) {
52 53
     for (var key in obj) {
53  
-        if (__hasOwnProperty.call(obj, key)) {
  54
+        if (__hasOwnProperty(obj, key)) {
54 55
             var value = obj[key];
55 56
             if (kvPredicate(key, value)) {
56 57
                 return { key: key, value: value };
@@ -63,7 +64,7 @@ function __objectFirst(obj, kvPredicate) {
63 64
 function __objectMapToArray(obj, kvFn) {
64 65
     var results = [];
65 66
     for (var key in obj) {
66  
-        if (__hasOwnProperty.call(obj, key)) {
  67
+        if (__hasOwnProperty(obj, key)) {
67 68
             var result = kvFn(key, obj[key]);
68 69
             if (result) {
69 70
                 results.push(result);
@@ -93,7 +94,7 @@ function __pluck(propertyName) {
93 94
 function __getOwnPropertyValues(source) {
94 95
     var result = [];
95 96
     for (var name in source) {
96  
-        if (__hasOwnProperty.call(source, name)) {
  97
+        if (__hasOwnProperty(source, name)) {
97 98
             result.push(source[name]);
98 99
         }
99 100
     }
@@ -103,13 +104,34 @@ function __getOwnPropertyValues(source) {
103 104
 function __extend(target, source) {
104 105
     if (!source) return target;
105 106
     for (var name in source) {
106  
-        if (__hasOwnProperty.call(source, name)) {
  107
+        if (__hasOwnProperty(source, name)) {
107 108
             target[name] = source[name];
108 109
         }
109 110
     }
110 111
     return target;
111 112
 }
112 113
 
  114
+function __updateWithDefaults(target, defaults) {
  115
+    for (var name in defaults) {
  116
+        if (target[name] === undefined) {
  117
+            target[name] = defaults[name];
  118
+        }
  119
+    }
  120
+    return target;
  121
+}
  122
+
  123
+
  124
+function __setAsDefault(target, ctor) {
  125
+    // we want to insure that the object returned by ctor.defaultInstance is always immutable
  126
+    // Use 'target' as the primary template for the ctor.defaultInstance; 
  127
+    // Use current 'ctor.defaultInstance' as the template for any missing properties
  128
+    // creates a new instance for ctor.defaultInstance
  129
+    // returns target unchanged 
  130
+    ctor.defaultInstance = __updateWithDefaults(new ctor(target), ctor.defaultInstance);
  131
+    return target;
  132
+}
  133
+
  134
+
113 135
 // template keys are the keys to return
114 136
 // template values are the 'default' value of these keys - value is not serialized if it == the default value
115 137
 function __toJson(source, template) {
@@ -275,7 +297,7 @@ function __wrapExecution(startFn, endFn, fn) {
275 297
 
276 298
 function __memoize(fn) {
277 299
     return function () {
278  
-        var args = Array.prototype.slice.call(arguments),
  300
+        var args = __arraySlice(arguments),
279 301
             hash = "",
280 302
             i = args.length,
281 303
             currentArg = null;
@@ -358,7 +380,7 @@ function __isEmpty(obj) {
358 380
         return true;
359 381
     }
360 382
     for (var key in obj) {
361  
-        if (__hasOwnProperty.call(obj, key)) {
  383
+        if (__hasOwnProperty(obj, key)) {
362 384
             return false;
363 385
         }
364 386
     }
@@ -397,6 +419,16 @@ function __formatString(string) {
397 419
 
398 420
 // end of string functions
399 421
 
  422
+// See Mark Miller’s explanation of what this does.
  423
+// http://wiki.ecmascript.org/doku.php?id=conventions:safe_meta_programming
  424
+function uncurry(f) {
  425
+    var call = Function.call;
  426
+    return function () {
  427
+        return call.apply(f, arguments);
  428
+    };
  429
+}
  430
+
  431
+
400 432
 // shims
401 433
 
402 434
 if (!Object.create) {
@@ -731,12 +763,14 @@ var Param = function () {
731 763
         return this.parent.whereParam(propName);
732 764
     };
733 765
 
734  
-    proto.applyAll = function(instance, throwIfUnknownProperty) {
  766
+
  767
+    proto.applyAll = function(instance, checkOnly, throwIfUnknownProperty) {
735 768
         throwIfUnknownProperty = throwIfUnknownProperty == null ? true : throwIfUnknownProperty;
736 769
         var clone = __extend({}, this.parent.config);
737 770
         this.parent.params.forEach(function(p) {
738 771
             if (throwIfUnknownProperty) delete clone[p.name];
739  
-            p._applyOne(instance);
  772
+            p.check();
  773
+            (!checkOnly) && p._applyOne(instance);
740 774
         });
741 775
         // should be no properties left in the clone
742 776
         if (throwIfUnknownProperty) {
@@ -750,7 +784,6 @@ var Param = function () {
750 784
     };
751 785
 
752 786
     proto._applyOne = function(instance) {
753  
-        this.check();
754 787
         if (this.v !== undefined) {
755 788
             instance[this.name] = this.v;
756 789
         } else {
@@ -942,7 +975,7 @@ var Enum = function() {
942 975
     //Enum.prototype.combineSymbols = function () {
943 976
     //    var proto = this._symbolPrototype;
944 977
     //    var newSymbol = Object.create(proto);
945  
-    //    newSymbol._symbols = Array.prototype.slice.call(arguments);
  978
+    //    newSymbol._symbols = __arraySlice(arguments);
946 979
 
947 980
     //    Object.keys(proto).forEach(function (key) {
948 981
     //        var result;
@@ -1512,7 +1545,8 @@ var __config = function () {
1512 1545
         assertConfig(config)
1513 1546
             .whereParam("dataService").isOptional()
1514 1547
             .whereParam("modelLibrary").isOptional()
1515  
-            .whereParam("ajax").isOptional();
  1548
+            .whereParam("ajax").isOptional()
  1549
+            .applyAll(this, false);
1516 1550
         return __objectMapToArray(config, __config.initializeAdapterInstance);
1517 1551
 
1518 1552
     };
@@ -3733,7 +3767,7 @@ var EntityKey = (function () {
3733 3767
         // can't ref EntityType here because of module circularity
3734 3768
         // assertParam(entityType, "entityType").isInstanceOf(EntityType).check();
3735 3769
         if (!Array.isArray(keyValues)) {
3736  
-            keyValues = Array.prototype.slice.call(arguments, 1);
  3770
+            keyValues = __arraySlice(arguments, 1);
3737 3771
         }
3738 3772
         // fluff
3739 3773
         //if (!(this instanceof ctor)) {
@@ -4162,8 +4196,8 @@ var LocalQueryComparisonOptions = (function () {
4162 4196
     var ctor = function (config) {
4163 4197
         assertConfig(config || {})
4164 4198
             .whereParam("name").isOptional().isString()
4165  
-            .whereParam("isCaseSensitive").isOptional().isBoolean().withDefault(false)
4166  
-            .whereParam("usesSql92CompliantStringComparison").isBoolean().withDefault(true)
  4199
+            .whereParam("isCaseSensitive").isOptional().isBoolean()
  4200
+            .whereParam("usesSql92CompliantStringComparison").isBoolean()
4167 4201
             .applyAll(this);
4168 4202
         if (!this.name) {
4169 4203
             this.name = __getUuid();
@@ -4190,10 +4224,10 @@ var LocalQueryComparisonOptions = (function () {
4190 4224
     @property defaultInstance {LocalQueryComparisonOptions}
4191 4225
     @static
4192 4226
     **/
4193  
-    ctor.defaultInstance = ctor.caseInsensitiveSQL;
  4227
+    ctor.defaultInstance = new ctor(ctor.caseInsensitiveSQL);
4194 4228
 
4195 4229
     /**
4196  
-    Makes this instance the default instance.
  4230
+    Make this instance to the default instance and populates all unset properties with existing default values.
4197 4231
     @method setAsDefault
4198 4232
     @example
4199 4233
         var lqco = new LocalQueryComparisonOptions({
@@ -4204,8 +4238,7 @@ var LocalQueryComparisonOptions = (function () {
4204 4238
     @chainable
4205 4239
     **/
4206 4240
     proto.setAsDefault = function () {
4207  
-        ctor.defaultInstance = this;
4208  
-        return this;
  4241
+        return __setAsDefault(this, ctor);
4209 4242
     };
4210 4243
 
4211 4244
 
@@ -4311,10 +4344,10 @@ var NamingConvention = (function () {
4311 4344
     @property defaultInstance {NamingConvention}
4312 4345
     @static
4313 4346
     **/
4314  
-    ctor.defaultInstance = ctor.none;
  4347
+    ctor.defaultInstance = new ctor(ctor.none);
4315 4348
         
4316 4349
     /**
4317  
-    Makes this instance the default instance.
  4350
+    Make this instance to the default instance and populates all unset properties with existing default values.
4318 4351
     @method setAsDefault
4319 4352
     @example
4320 4353
         var namingConv = new NamingConvention({
@@ -4328,9 +4361,8 @@ var NamingConvention = (function () {
4328 4361
         namingConv.setAsDefault();
4329 4362
     @chainable
4330 4363
     **/
4331  
-    proto.setAsDefault = function() {
4332  
-        ctor.defaultInstance = this;
4333  
-        return this;
  4364
+    proto.setAsDefault = function () {
  4365
+        return __setAsDefault(this, ctor);
4334 4366
     };
4335 4367
         
4336 4368
     return ctor;
@@ -4706,6 +4738,19 @@ var MetadataStore = (function () {
4706 4738
             aCtor._$initializationFn = initializationFn;
4707 4739
         }
4708 4740
     };
  4741
+    
  4742
+    proto.toQueryString = function(query) {
  4743
+        if (!query) {
  4744
+            throw new Error("query cannot be empty");
  4745
+        }
  4746
+        if (typeof query === 'string') {
  4747
+            return query;
  4748
+        } else if (query instanceof EntityQuery) {
  4749
+            return query._toUri(this);
  4750
+        } else {
  4751
+            throw new Error("unable to recognize query parameter as either a string or an EntityQuery");
  4752
+        }
  4753
+    }
4709 4754
       
4710 4755
     function createEmptyCtor() {
4711 4756
         return function() {};
@@ -5149,6 +5194,7 @@ var MetadataStore = (function () {
5149 5194
         }
5150 5195
     }
5151 5196
 
  5197
+    
5152 5198
     // Fast version
5153 5199
     // np: schema.entityType[].navigationProperty.relationship -> schema.association
5154 5200
     //   match( shortName(np.relationship) == schema.association[].name
@@ -5188,7 +5234,7 @@ var MetadataStore = (function () {
5188 5234
     return ctor;
5189 5235
 })();
5190 5236
 
5191  
-var DataService = function () {
  5237
+var DataService = (function () {
5192 5238
         
5193 5239
     /**
5194 5240
     A DataService instance is used to encapsulate the details of a single 'service'; this includes a serviceName, a dataService adapterInstance, 
@@ -5313,7 +5359,7 @@ var DataService = function () {
5313 5359
     };
5314 5360
 
5315 5361
     return ctor;
5316  
-}();
  5362
+})();
5317 5363
     
5318 5364
 var JsonResultsAdapter = (function () {
5319 5365
 
@@ -6908,9 +6954,9 @@ var EntityQuery = (function () {
6908 6954
         this.parameters = {};
6909 6955
         this.inlineCountEnabled = false;
6910 6956
         // default is to get queryOptions from the entityManager.
6911  
-        this.queryOptions = null;
  6957
+        this.queryOptions = new QueryOptions();
6912 6958
         this.entityManager = null;
6913  
-        this.dataService = null;
  6959
+        // this.dataService = null;
6914 6960
     };
6915 6961
     var proto = ctor.prototype;
6916 6962
 
@@ -7096,7 +7142,7 @@ var EntityQuery = (function () {
7096 7142
         if (Predicate.isPredicate(predicate)) {
7097 7143
             pred = predicate;
7098 7144
         } else {
7099  
-            pred = Predicate.create(Array.prototype.slice.call(arguments));
  7145
+            pred = Predicate.create(__arraySlice(arguments));
7100 7146
         }
7101 7147
         if (eq.entityType) pred.validate(eq.entityType);
7102 7148
         if (eq.wherePredicate) {
@@ -7367,18 +7413,12 @@ var EntityQuery = (function () {
7367 7413
     @chainable
7368 7414
     **/
7369 7415
     proto.using = function (obj) {
  7416
+        if (!obj) return this;
7370 7417
         var eq = this._clone();
7371 7418
         if (obj instanceof EntityManager) {
7372 7419
             eq.entityManager = obj;
7373  
-        } else if (MergeStrategy.contains(obj) || FetchStrategy.contains(obj)) {
7374  
-            var queryOptions = this.queryOptions || QueryOptions.defaultInstance;
7375  
-            eq.queryOptions = queryOptions.using(obj);
7376  
-        } else if (obj instanceof DataService) {
7377  
-            eq.dataService = obj;
7378  
-        } else if (obj instanceof JsonResultsAdapter) {
7379  
-            eq.jsonResultsAdapter = obj;
7380 7420
         } else {
7381  
-            throw new Error("EntityQuery.using parameter must be either an EntityManager, a Query Strategy, a FetchStrategy, a DataService or a JsonResultsAdapter");
  7421
+            eq.queryOptions = this.queryOptions.using(obj);
7382 7422
         }
7383 7423
         return eq;
7384 7424
     };
@@ -7493,7 +7533,7 @@ var EntityQuery = (function () {
7493 7533
     ctor.fromEntities = function (entities) {
7494 7534
         assertParam(entities, "entities").isEntity().or().isNonEmptyArray().isEntity().check();
7495 7535
         if (!Array.isArray(entities)) {
7496  
-            entities = Array.prototype.slice.call(arguments);
  7536
+            entities = __arraySlice(arguments);
7497 7537
         }
7498 7538
         var firstEntity = entities[0];
7499 7539
         var q = new EntityQuery(firstEntity.entityType.defaultResourceName);
@@ -7631,7 +7671,7 @@ var EntityQuery = (function () {
7631 7671
         copy.inlineCountEnabled = this.inlineCountEnabled;
7632 7672
         copy.parameters = __extend({}, this.parameters);
7633 7673
         // default is to get queryOptions from the entityManager.
7634  
-        copy.queryOptions = this.queryOptions;
  7674
+        copy.queryOptions = this.queryOptions; // safe because QueryOptions are immutable; 
7635 7675
         copy.entityManager = this.entityManager;
7636 7676
 
7637 7677
         return copy;
@@ -8411,7 +8451,7 @@ var Predicate = (function () {
8411 8451
         if (argsx.length === 1 && Array.isArray(argsx[0])) {
8412 8452
             return argsx[0];
8413 8453
         } else {
8414  
-            var args = Array.prototype.slice.call(argsx);
  8454
+            var args = __arraySlice(argsx);
8415 8455
             if (Predicate.isPredicate(args[0])) {
8416 8456
                 return args;
8417 8457
             } else {
@@ -9253,7 +9293,7 @@ breeze.makeRelationArray = function() {
9253 9293
             return -1;
9254 9294
         }
9255 9295
 
9256  
-        var goodAdds = getGoodAdds(this, Array.prototype.slice.call(arguments));
  9296
+        var goodAdds = getGoodAdds(this, __arraySlice(arguments));
9257 9297
         if (!goodAdds.length) {
9258 9298
             return this.length;
9259 9299
         }
@@ -9264,13 +9304,13 @@ breeze.makeRelationArray = function() {
9264 9304
 
9265 9305
 
9266 9306
     relationArrayMixin.unshift = function() {
9267  
-        var goodAdds = getGoodAdds(this, Array.prototype.slice.call(arguments));
  9307
+        var goodAdds = getGoodAdds(this, __arraySlice(arguments));
9268 9308
         if (!goodAdds.length) {
9269 9309
             return this.length;
9270 9310
         }
9271 9311
 
9272 9312
         var result = Array.prototype.unshift.apply(this, goodAdds);
9273  
-        processAdds(this, Array.prototype.slice.call(goodAdds));
  9313
+        processAdds(this, __arraySlice(goodAdds));
9274 9314
         return result;
9275 9315
     };
9276 9316
 
@@ -9287,8 +9327,8 @@ breeze.makeRelationArray = function() {
9287 9327
     };
9288 9328
 
9289 9329
     relationArrayMixin.splice = function() {
9290  
-        var goodAdds = getGoodAdds(this, Array.prototype.slice.call(arguments, 2));
9291  
-        var newArgs = Array.prototype.slice.call(arguments, 0, 2).concat(goodAdds);
  9330
+        var goodAdds = getGoodAdds(this, __arraySlice(arguments, 2));
  9331
+        var newArgs = __arraySlice(arguments, 0, 2).concat(goodAdds);
9292 9332
 
9293 9333
         var result = Array.prototype.splice.apply(this, newArgs);
9294 9334
         processRemoves(this, result);
@@ -9491,13 +9531,13 @@ var EntityManager = (function () {
9491 9531
     @param [config.serviceName] {String}
9492 9532
     @param [config.dataService] {DataService} An entire DataService (instead of just the serviceName above).
9493 9533
     @param [config.metadataStore=MetadataStore.defaultInstance] {MetadataStore}
9494  
-    @param [config.queryOptions=QueryOptions.defaultInstance] {QueryOptions}
9495  
-    @param [config.saveOptions=SaveOptions.defaultInstance] {SaveOptions}
  9534
+    @param [config.queryOptions] {QueryOptions}
  9535
+    @param [config.saveOptions] {SaveOptions}
9496 9536
     @param [config.validationOptions=ValidationOptions.defaultInstance] {ValidationOptions}
9497 9537
     @param [config.keyGeneratorCtor] {Function}
9498 9538
     **/
9499  
-    var ctor = function (config) {
9500  
-            
  9539
+    var ctor = function(config) {
  9540
+
9501 9541
         if (arguments.length > 1) {
9502 9542
             throw new Error("The EntityManager ctor has a single optional argument that is either a 'serviceName' or a configuration object.");
9503 9543
         }
@@ -9506,25 +9546,9 @@ var EntityManager = (function () {
9506 9546
         } else if (typeof config === 'string') {
9507 9547
             config = { serviceName: config };
9508 9548
         }
9509  
-            
9510  
-        assertConfig(config)
9511  
-            .whereParam("serviceName").isOptional().isString()
9512  
-            .whereParam("dataService").isOptional().isInstanceOf(DataService)
9513  
-            .whereParam("metadataStore").isInstanceOf(MetadataStore).isOptional().withDefault(new MetadataStore())
9514  
-            .whereParam("queryOptions").isInstanceOf(QueryOptions).isOptional().withDefault(QueryOptions.defaultInstance)
9515  
-            .whereParam("saveOptions").isInstanceOf(SaveOptions).isOptional().withDefault(SaveOptions.defaultInstance)
9516  
-            .whereParam("validationOptions").isInstanceOf(ValidationOptions).isOptional().withDefault(ValidationOptions.defaultInstance)
9517  
-            .whereParam("keyGeneratorCtor").isFunction().isOptional().withDefault(KeyGenerator)
9518  
-            .applyAll(this);
9519 9549
 
9520  
-                
9521  
-        if (config.serviceName) {
9522  
-            this.dataService = new DataService({
9523  
-                serviceName: this.serviceName
9524  
-            });
9525  
-        }
9526  
-        this.serviceName = this.dataService && this.dataService.serviceName;
9527  
-            
  9550
+        updateWithConfig(this, config, true);
  9551
+
9528 9552
         this.entityChanged = new Event("entityChanged_entityManager", this);
9529 9553
         this.hasChangesChanged = new Event("hasChangesChanged_entityManager", this);
9530 9554
             
@@ -9532,13 +9556,69 @@ var EntityManager = (function () {
9532 9556
             
9533 9557
     };
9534 9558
     var proto = ctor.prototype;
  9559
+    proto._$typeName = "EntityManager";
  9560
+    Event.bubbleEvent(proto, null);
  9561
+    
  9562
+    /**
  9563
+    General purpose property set method.  Any of the properties documented below 
  9564
+    may be set.
  9565
+    @example
  9566
+            // assume em1 is a previously created EntityManager
  9567
+            // where we want to change some of its settings.
  9568
+            em1.setProperties( {
  9569
+                serviceName: "api/foo"
  9570
+            });
  9571
+    @method setProperties
  9572
+    @param config {Object}
  9573
+        @param [config.serviceName] {String}
  9574
+        @param [config.dataService] {DataService}
  9575
+        @param [config.queryOptions] {QueryOptions}
  9576
+        @param [config.saveOptions] {SaveOptions}
  9577
+        @param [config.validationOptions] {ValidationOptions}
  9578
+        @param [config.keyGeneratorCtor] {Function}
  9579
+    **/
  9580
+    proto.setProperties = function (config) {
  9581
+        updateWithConfig(this, config, false);
9535 9582
         
  9583
+    };
  9584
+    
  9585
+    function updateWithConfig(em, config, isCtor) {
  9586
+        var defaultQueryOptions = isCtor ? QueryOptions.defaultInstance : em.queryOptions;
  9587
+        var defaultSaveOptions = isCtor ? SaveOptions.defaultInstance : em.saveOptions;
  9588
+        var defaultValidationOptions = isCtor ? ValidationOptions.defaultInstance : em.validationOptions;
9536 9589
         
  9590
+
  9591
+        var configParam = assertConfig(config)
  9592
+            .whereParam("serviceName").isOptional().isString()
  9593
+            .whereParam("dataService").isOptional().isInstanceOf(DataService)
  9594
+            .whereParam("queryOptions").isInstanceOf(QueryOptions).isOptional().withDefault(defaultQueryOptions)
  9595
+            .whereParam("saveOptions").isInstanceOf(SaveOptions).isOptional().withDefault(defaultSaveOptions)
  9596
+            .whereParam("validationOptions").isInstanceOf(ValidationOptions).isOptional().withDefault(defaultValidationOptions)
  9597
+            .whereParam("keyGeneratorCtor").isFunction().isOptional();
  9598
+        if (isCtor) {
  9599
+            configParam = configParam
  9600
+                .whereParam("metadataStore").isInstanceOf(MetadataStore).isOptional().withDefault(new MetadataStore());
  9601
+        } 
  9602
+        configParam.applyAll(em);
9537 9603
         
9538  
-    proto._$typeName = "EntityManager";
9539 9604
         
  9605
+        // insure that entityManager's options versions are completely populated
  9606
+        __updateWithDefaults(em.queryOptions, defaultQueryOptions);
  9607
+        __updateWithDefaults(em.saveOptions, defaultSaveOptions);
  9608
+        __updateWithDefaults(em.validationOptions, defaultValidationOptions);
9540 9609
 
9541  
-    Event.bubbleEvent(proto, null);
  9610
+        if (config.serviceName) {
  9611
+            em.dataService = new DataService({
  9612
+                serviceName: em.serviceName
  9613
+            });
  9614
+        }
  9615
+        em.serviceName = em.dataService && em.dataService.serviceName;
  9616
+
  9617
+        em.keyGeneratorCtor = em.keyGeneratorCtor || KeyGenerator;
  9618
+        if (isCtor || config.keyGeneratorCtor) {
  9619
+            em.keyGenerator = new em.keyGeneratorCtor();
  9620
+        } 
  9621
+    }
9542 9622
         
9543 9623
     /**
9544 9624
     The service name associated with this EntityManager.
@@ -9811,47 +9891,7 @@ var EntityManager = (function () {
9811 9891
         }
9812 9892
     };
9813 9893
 
9814  
-    /**
9815  
-    General purpose property set method.  Any of the properties documented below 
9816  
-    may be set.
9817  
-    @example
9818  
-            // assume em1 is a previously created EntityManager
9819  
-            // where we want to change some of its settings.
9820  
-            em1.setProperties( {
9821  
-            serviceName: "api/foo"
9822  
-            });
9823  
-    @method setProperties
9824  
-    @param config {Object}