ruby_odata 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. data/.gitignore +9 -0
  2. data/LICENSE +24 -0
  3. data/README.rdoc +107 -0
  4. data/Rakefile +28 -0
  5. data/VERSION +1 -0
  6. data/config/cucumber.yml +7 -0
  7. data/doc/classes/OData/ClassBuilder.html +219 -0
  8. data/doc/classes/OData/Operation.html +194 -0
  9. data/doc/classes/OData/QueryBuilder.html +305 -0
  10. data/doc/classes/OData/Service.html +420 -0
  11. data/doc/classes/OData.html +126 -0
  12. data/doc/created.rid +1 -0
  13. data/doc/files/README_rdoc.html +252 -0
  14. data/doc/files/lib/odata_ruby/class_builder_rb.html +101 -0
  15. data/doc/files/lib/odata_ruby/operation_rb.html +101 -0
  16. data/doc/files/lib/odata_ruby/query_builder_rb.html +101 -0
  17. data/doc/files/lib/odata_ruby/service_rb.html +101 -0
  18. data/doc/files/lib/odata_ruby_rb.html +114 -0
  19. data/doc/fr_class_index.html +31 -0
  20. data/doc/fr_file_index.html +32 -0
  21. data/doc/fr_method_index.html +40 -0
  22. data/doc/index.html +24 -0
  23. data/doc/rdoc-style.css +208 -0
  24. data/features/service.feature +82 -0
  25. data/features/service_manage.feature +44 -0
  26. data/features/step_definitions/service_steps.rb +132 -0
  27. data/features/support/env.rb +4 -0
  28. data/features/support/hooks.rb +4 -0
  29. data/lib/odata_ruby/class_builder.rb +84 -0
  30. data/lib/odata_ruby/operation.rb +18 -0
  31. data/lib/odata_ruby/query_builder.rb +63 -0
  32. data/lib/odata_ruby/service.rb +207 -0
  33. data/lib/odata_ruby.rb +15 -0
  34. data/ruby_odata.gemspec +94 -0
  35. data/test/Cassini x64.bat +1 -0
  36. data/test/Cassini x86.bat +1 -0
  37. data/test/SampleService/App_Code/Entities.cs +39 -0
  38. data/test/SampleService/App_Code/Model.Designer.cs +414 -0
  39. data/test/SampleService/App_Code/Model.edmx +140 -0
  40. data/test/SampleService/App_Data/_TestDB.mdf +0 -0
  41. data/test/SampleService/App_Data/_TestDB_Log.ldf +0 -0
  42. data/test/SampleService/Entities.svc +1 -0
  43. data/test/SampleService/web.config +27 -0
  44. data/test/blueprints.rb +16 -0
  45. metadata +158 -0
@@ -0,0 +1,414 @@
1
+ //------------------------------------------------------------------------------
2
+ // <auto-generated>
3
+ // This code was generated from a template.
4
+ //
5
+ // Manual changes to this file may cause unexpected behavior in your application.
6
+ // Manual changes to this file will be overwritten if the code is regenerated.
7
+ // </auto-generated>
8
+ //------------------------------------------------------------------------------
9
+
10
+ using System;
11
+ using System.Data.Objects;
12
+ using System.Data.Objects.DataClasses;
13
+ using System.Data.EntityClient;
14
+ using System.ComponentModel;
15
+ using System.Xml.Serialization;
16
+ using System.Runtime.Serialization;
17
+
18
+ [assembly: EdmSchemaAttribute()]
19
+ #region EDM Relationship Metadata
20
+
21
+ [assembly: EdmRelationshipAttribute("Model", "CategoryProduct", "Category", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(Model.Category), "Product", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(Model.Product))]
22
+
23
+ #endregion
24
+
25
+ namespace Model
26
+ {
27
+ #region Contexts
28
+
29
+ /// <summary>
30
+ /// No Metadata Documentation available.
31
+ /// </summary>
32
+ public partial class ModelContainer : ObjectContext
33
+ {
34
+ #region Constructors
35
+
36
+ /// <summary>
37
+ /// Initializes a new ModelContainer object using the connection string found in the 'ModelContainer' section of the application configuration file.
38
+ /// </summary>
39
+ public ModelContainer() : base("name=ModelContainer", "ModelContainer")
40
+ {
41
+ this.ContextOptions.LazyLoadingEnabled = true;
42
+ OnContextCreated();
43
+ }
44
+
45
+ /// <summary>
46
+ /// Initialize a new ModelContainer object.
47
+ /// </summary>
48
+ public ModelContainer(string connectionString) : base(connectionString, "ModelContainer")
49
+ {
50
+ this.ContextOptions.LazyLoadingEnabled = true;
51
+ OnContextCreated();
52
+ }
53
+
54
+ /// <summary>
55
+ /// Initialize a new ModelContainer object.
56
+ /// </summary>
57
+ public ModelContainer(EntityConnection connection) : base(connection, "ModelContainer")
58
+ {
59
+ this.ContextOptions.LazyLoadingEnabled = true;
60
+ OnContextCreated();
61
+ }
62
+
63
+ #endregion
64
+
65
+ #region Partial Methods
66
+
67
+ partial void OnContextCreated();
68
+
69
+ #endregion
70
+
71
+ #region ObjectSet Properties
72
+
73
+ /// <summary>
74
+ /// No Metadata Documentation available.
75
+ /// </summary>
76
+ public ObjectSet<Product> Products
77
+ {
78
+ get
79
+ {
80
+ if ((_Products == null))
81
+ {
82
+ _Products = base.CreateObjectSet<Product>("Products");
83
+ }
84
+ return _Products;
85
+ }
86
+ }
87
+ private ObjectSet<Product> _Products;
88
+
89
+ /// <summary>
90
+ /// No Metadata Documentation available.
91
+ /// </summary>
92
+ public ObjectSet<Category> Categories
93
+ {
94
+ get
95
+ {
96
+ if ((_Categories == null))
97
+ {
98
+ _Categories = base.CreateObjectSet<Category>("Categories");
99
+ }
100
+ return _Categories;
101
+ }
102
+ }
103
+ private ObjectSet<Category> _Categories;
104
+
105
+ #endregion
106
+ #region AddTo Methods
107
+
108
+ /// <summary>
109
+ /// Deprecated Method for adding a new object to the Products EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
110
+ /// </summary>
111
+ public void AddToProducts(Product product)
112
+ {
113
+ base.AddObject("Products", product);
114
+ }
115
+
116
+ /// <summary>
117
+ /// Deprecated Method for adding a new object to the Categories EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
118
+ /// </summary>
119
+ public void AddToCategories(Category category)
120
+ {
121
+ base.AddObject("Categories", category);
122
+ }
123
+
124
+ #endregion
125
+ }
126
+
127
+
128
+ #endregion
129
+
130
+ #region Entities
131
+
132
+ /// <summary>
133
+ /// No Metadata Documentation available.
134
+ /// </summary>
135
+ [EdmEntityTypeAttribute(NamespaceName="Model", Name="Category")]
136
+ [Serializable()]
137
+ [DataContractAttribute(IsReference=true)]
138
+ public partial class Category : EntityObject
139
+ {
140
+ #region Factory Method
141
+
142
+ /// <summary>
143
+ /// Create a new Category object.
144
+ /// </summary>
145
+ /// <param name="id">Initial value of the Id property.</param>
146
+ /// <param name="name">Initial value of the Name property.</param>
147
+ public static Category CreateCategory(global::System.Int32 id, global::System.String name)
148
+ {
149
+ Category category = new Category();
150
+ category.Id = id;
151
+ category.Name = name;
152
+ return category;
153
+ }
154
+
155
+ #endregion
156
+ #region Primitive Properties
157
+
158
+ /// <summary>
159
+ /// No Metadata Documentation available.
160
+ /// </summary>
161
+ [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
162
+ [DataMemberAttribute()]
163
+ public global::System.Int32 Id
164
+ {
165
+ get
166
+ {
167
+ return _Id;
168
+ }
169
+ set
170
+ {
171
+ if (_Id != value)
172
+ {
173
+ OnIdChanging(value);
174
+ ReportPropertyChanging("Id");
175
+ _Id = StructuralObject.SetValidValue(value);
176
+ ReportPropertyChanged("Id");
177
+ OnIdChanged();
178
+ }
179
+ }
180
+ }
181
+ private global::System.Int32 _Id;
182
+ partial void OnIdChanging(global::System.Int32 value);
183
+ partial void OnIdChanged();
184
+
185
+ /// <summary>
186
+ /// No Metadata Documentation available.
187
+ /// </summary>
188
+ [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
189
+ [DataMemberAttribute()]
190
+ public global::System.String Name
191
+ {
192
+ get
193
+ {
194
+ return _Name;
195
+ }
196
+ set
197
+ {
198
+ OnNameChanging(value);
199
+ ReportPropertyChanging("Name");
200
+ _Name = StructuralObject.SetValidValue(value, false);
201
+ ReportPropertyChanged("Name");
202
+ OnNameChanged();
203
+ }
204
+ }
205
+ private global::System.String _Name;
206
+ partial void OnNameChanging(global::System.String value);
207
+ partial void OnNameChanged();
208
+
209
+ #endregion
210
+
211
+ #region Navigation Properties
212
+
213
+ /// <summary>
214
+ /// No Metadata Documentation available.
215
+ /// </summary>
216
+ [XmlIgnoreAttribute()]
217
+ [SoapIgnoreAttribute()]
218
+ [DataMemberAttribute()]
219
+ [EdmRelationshipNavigationPropertyAttribute("Model", "CategoryProduct", "Product")]
220
+ public EntityCollection<Product> Products
221
+ {
222
+ get
223
+ {
224
+ return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Product>("Model.CategoryProduct", "Product");
225
+ }
226
+ set
227
+ {
228
+ if ((value != null))
229
+ {
230
+ ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Product>("Model.CategoryProduct", "Product", value);
231
+ }
232
+ }
233
+ }
234
+
235
+ #endregion
236
+ }
237
+
238
+ /// <summary>
239
+ /// No Metadata Documentation available.
240
+ /// </summary>
241
+ [EdmEntityTypeAttribute(NamespaceName="Model", Name="Product")]
242
+ [Serializable()]
243
+ [DataContractAttribute(IsReference=true)]
244
+ public partial class Product : EntityObject
245
+ {
246
+ #region Factory Method
247
+
248
+ /// <summary>
249
+ /// Create a new Product object.
250
+ /// </summary>
251
+ /// <param name="id">Initial value of the Id property.</param>
252
+ /// <param name="name">Initial value of the Name property.</param>
253
+ /// <param name="description">Initial value of the Description property.</param>
254
+ /// <param name="price">Initial value of the Price property.</param>
255
+ public static Product CreateProduct(global::System.Int32 id, global::System.String name, global::System.String description, global::System.Decimal price)
256
+ {
257
+ Product product = new Product();
258
+ product.Id = id;
259
+ product.Name = name;
260
+ product.Description = description;
261
+ product.Price = price;
262
+ return product;
263
+ }
264
+
265
+ #endregion
266
+ #region Primitive Properties
267
+
268
+ /// <summary>
269
+ /// No Metadata Documentation available.
270
+ /// </summary>
271
+ [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
272
+ [DataMemberAttribute()]
273
+ public global::System.Int32 Id
274
+ {
275
+ get
276
+ {
277
+ return _Id;
278
+ }
279
+ set
280
+ {
281
+ if (_Id != value)
282
+ {
283
+ OnIdChanging(value);
284
+ ReportPropertyChanging("Id");
285
+ _Id = StructuralObject.SetValidValue(value);
286
+ ReportPropertyChanged("Id");
287
+ OnIdChanged();
288
+ }
289
+ }
290
+ }
291
+ private global::System.Int32 _Id;
292
+ partial void OnIdChanging(global::System.Int32 value);
293
+ partial void OnIdChanged();
294
+
295
+ /// <summary>
296
+ /// No Metadata Documentation available.
297
+ /// </summary>
298
+ [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
299
+ [DataMemberAttribute()]
300
+ public global::System.String Name
301
+ {
302
+ get
303
+ {
304
+ return _Name;
305
+ }
306
+ set
307
+ {
308
+ OnNameChanging(value);
309
+ ReportPropertyChanging("Name");
310
+ _Name = StructuralObject.SetValidValue(value, false);
311
+ ReportPropertyChanged("Name");
312
+ OnNameChanged();
313
+ }
314
+ }
315
+ private global::System.String _Name;
316
+ partial void OnNameChanging(global::System.String value);
317
+ partial void OnNameChanged();
318
+
319
+ /// <summary>
320
+ /// No Metadata Documentation available.
321
+ /// </summary>
322
+ [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
323
+ [DataMemberAttribute()]
324
+ public global::System.String Description
325
+ {
326
+ get
327
+ {
328
+ return _Description;
329
+ }
330
+ set
331
+ {
332
+ OnDescriptionChanging(value);
333
+ ReportPropertyChanging("Description");
334
+ _Description = StructuralObject.SetValidValue(value, false);
335
+ ReportPropertyChanged("Description");
336
+ OnDescriptionChanged();
337
+ }
338
+ }
339
+ private global::System.String _Description;
340
+ partial void OnDescriptionChanging(global::System.String value);
341
+ partial void OnDescriptionChanged();
342
+
343
+ /// <summary>
344
+ /// No Metadata Documentation available.
345
+ /// </summary>
346
+ [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
347
+ [DataMemberAttribute()]
348
+ public global::System.Decimal Price
349
+ {
350
+ get
351
+ {
352
+ return _Price;
353
+ }
354
+ set
355
+ {
356
+ OnPriceChanging(value);
357
+ ReportPropertyChanging("Price");
358
+ _Price = StructuralObject.SetValidValue(value);
359
+ ReportPropertyChanged("Price");
360
+ OnPriceChanged();
361
+ }
362
+ }
363
+ private global::System.Decimal _Price;
364
+ partial void OnPriceChanging(global::System.Decimal value);
365
+ partial void OnPriceChanged();
366
+
367
+ #endregion
368
+
369
+ #region Navigation Properties
370
+
371
+ /// <summary>
372
+ /// No Metadata Documentation available.
373
+ /// </summary>
374
+ [XmlIgnoreAttribute()]
375
+ [SoapIgnoreAttribute()]
376
+ [DataMemberAttribute()]
377
+ [EdmRelationshipNavigationPropertyAttribute("Model", "CategoryProduct", "Category")]
378
+ public Category Category
379
+ {
380
+ get
381
+ {
382
+ return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Category>("Model.CategoryProduct", "Category").Value;
383
+ }
384
+ set
385
+ {
386
+ ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Category>("Model.CategoryProduct", "Category").Value = value;
387
+ }
388
+ }
389
+ /// <summary>
390
+ /// No Metadata Documentation available.
391
+ /// </summary>
392
+ [BrowsableAttribute(false)]
393
+ [DataMemberAttribute()]
394
+ public EntityReference<Category> CategoryReference
395
+ {
396
+ get
397
+ {
398
+ return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Category>("Model.CategoryProduct", "Category");
399
+ }
400
+ set
401
+ {
402
+ if ((value != null))
403
+ {
404
+ ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Category>("Model.CategoryProduct", "Category", value);
405
+ }
406
+ }
407
+ }
408
+
409
+ #endregion
410
+ }
411
+
412
+ #endregion
413
+
414
+ }
@@ -0,0 +1,140 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <edmx:Edmx Version="2.0" xmlns:edmx="http://schemas.microsoft.com/ado/2008/10/edmx">
3
+ <!-- EF Runtime content -->
4
+ <edmx:Runtime>
5
+ <!-- SSDL content -->
6
+ <edmx:StorageModels>
7
+ <Schema Namespace="Model.Store" Alias="Self" Provider="System.Data.SqlClient" ProviderManifestToken="2008" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2009/02/edm/ssdl">
8
+ <EntityContainer Name="ModelStoreContainer">
9
+ <EntitySet Name="Categories" EntityType="Model.Store.Categories" store:Type="Tables" Schema="dbo" />
10
+ <EntitySet Name="Products" EntityType="Model.Store.Products" store:Type="Tables" Schema="dbo" />
11
+ <AssociationSet Name="FK_CategoryProduct" Association="Model.Store.FK_CategoryProduct">
12
+ <End Role="Categories" EntitySet="Categories" />
13
+ <End Role="Products" EntitySet="Products" />
14
+ </AssociationSet>
15
+ </EntityContainer>
16
+ <EntityType Name="Categories">
17
+ <Key>
18
+ <PropertyRef Name="Id" />
19
+ </Key>
20
+ <Property Name="Id" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
21
+ <Property Name="Name" Type="nvarchar(max)" Nullable="false" />
22
+ </EntityType>
23
+ <EntityType Name="Products">
24
+ <Key>
25
+ <PropertyRef Name="Id" />
26
+ </Key>
27
+ <Property Name="Id" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
28
+ <Property Name="Name" Type="nvarchar(max)" Nullable="false" />
29
+ <Property Name="Description" Type="nvarchar(max)" Nullable="false" />
30
+ <Property Name="Price" Type="money" Nullable="false" />
31
+ <Property Name="Category_Id" Type="int" Nullable="false" />
32
+ </EntityType>
33
+ <Association Name="FK_CategoryProduct">
34
+ <End Role="Categories" Type="Model.Store.Categories" Multiplicity="1" />
35
+ <End Role="Products" Type="Model.Store.Products" Multiplicity="*" />
36
+ <ReferentialConstraint>
37
+ <Principal Role="Categories">
38
+ <PropertyRef Name="Id" />
39
+ </Principal>
40
+ <Dependent Role="Products">
41
+ <PropertyRef Name="Category_Id" />
42
+ </Dependent>
43
+ </ReferentialConstraint>
44
+ </Association>
45
+ </Schema></edmx:StorageModels>
46
+ <!-- CSDL content -->
47
+ <edmx:ConceptualModels>
48
+ <Schema xmlns="http://schemas.microsoft.com/ado/2008/09/edm" xmlns:cg="http://schemas.microsoft.com/ado/2006/04/codegeneration" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" Namespace="Model" Alias="Self" xmlns:annotation="http://schemas.microsoft.com/ado/2009/02/edm/annotation">
49
+ <EntityContainer Name="ModelContainer" annotation:LazyLoadingEnabled="true">
50
+ <EntitySet Name="Products" EntityType="Model.Product" />
51
+ <EntitySet Name="Categories" EntityType="Model.Category" />
52
+ <AssociationSet Name="CategoryProduct" Association="Model.CategoryProduct">
53
+ <End Role="Category" EntitySet="Categories" />
54
+ <End Role="Product" EntitySet="Products" />
55
+ </AssociationSet>
56
+ </EntityContainer>
57
+ <EntityType Name="Product">
58
+ <Key>
59
+ <PropertyRef Name="Id" />
60
+ </Key>
61
+ <Property Type="Int32" Name="Id" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
62
+ <Property Type="String" Name="Name" Nullable="false" />
63
+ <Property Type="String" Name="Description" Nullable="false" />
64
+ <Property Type="Decimal" Name="Price" Nullable="false" />
65
+ <NavigationProperty Name="Category" Relationship="Model.CategoryProduct" FromRole="Product" ToRole="Category" />
66
+ </EntityType>
67
+ <EntityType Name="Category">
68
+ <Key>
69
+ <PropertyRef Name="Id" />
70
+ </Key>
71
+ <Property Type="Int32" Name="Id" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
72
+ <Property Type="String" Name="Name" Nullable="false" />
73
+ <NavigationProperty Name="Products" Relationship="Model.CategoryProduct" FromRole="Category" ToRole="Product" />
74
+ </EntityType>
75
+ <Association Name="CategoryProduct">
76
+ <End Type="Model.Category" Role="Category" Multiplicity="1" />
77
+ <End Type="Model.Product" Role="Product" Multiplicity="*" />
78
+ </Association>
79
+ </Schema>
80
+ </edmx:ConceptualModels>
81
+ <!-- C-S mapping content -->
82
+ <edmx:Mappings>
83
+ <Mapping Space="C-S" xmlns="http://schemas.microsoft.com/ado/2008/09/mapping/cs">
84
+ <EntityContainerMapping StorageEntityContainer="ModelStoreContainer" CdmEntityContainer="ModelContainer">
85
+ <EntitySetMapping Name="Products">
86
+ <EntityTypeMapping TypeName="IsTypeOf(Model.Product)">
87
+ <MappingFragment StoreEntitySet="Products">
88
+ <ScalarProperty Name="Id" ColumnName="Id" />
89
+ <ScalarProperty Name="Name" ColumnName="Name" />
90
+ <ScalarProperty Name="Description" ColumnName="Description" />
91
+ <ScalarProperty Name="Price" ColumnName="Price" />
92
+ </MappingFragment>
93
+ </EntityTypeMapping>
94
+ </EntitySetMapping>
95
+ <EntitySetMapping Name="Categories">
96
+ <EntityTypeMapping TypeName="IsTypeOf(Model.Category)">
97
+ <MappingFragment StoreEntitySet="Categories">
98
+ <ScalarProperty Name="Id" ColumnName="Id" />
99
+ <ScalarProperty Name="Name" ColumnName="Name" />
100
+ </MappingFragment>
101
+ </EntityTypeMapping>
102
+ </EntitySetMapping>
103
+ <AssociationSetMapping Name="CategoryProduct" TypeName="Model.CategoryProduct" StoreEntitySet="Products">
104
+ <EndProperty Name="Category">
105
+ <ScalarProperty Name="Id" ColumnName="Category_Id" />
106
+ </EndProperty>
107
+ <EndProperty Name="Product">
108
+ <ScalarProperty Name="Id" ColumnName="Id" />
109
+ </EndProperty>
110
+ </AssociationSetMapping>
111
+ </EntityContainerMapping>
112
+ </Mapping></edmx:Mappings>
113
+ </edmx:Runtime>
114
+ <!-- EF Designer content (DO NOT EDIT MANUALLY BELOW HERE) -->
115
+ <edmx:Designer xmlns="http://schemas.microsoft.com/ado/2008/10/edmx">
116
+ <edmx:Connection>
117
+ <DesignerInfoPropertySet>
118
+ <DesignerProperty Name="MetadataArtifactProcessing" Value="EmbedInOutputAssembly" />
119
+ </DesignerInfoPropertySet>
120
+ </edmx:Connection>
121
+ <edmx:Options>
122
+ <DesignerInfoPropertySet>
123
+ <DesignerProperty Name="ValidateOnBuild" Value="true" />
124
+ <DesignerProperty Name="EnablePluralization" Value="True" />
125
+ <DesignerProperty Name="IncludeForeignKeysInModel" Value="True" />
126
+ </DesignerInfoPropertySet>
127
+ </edmx:Options>
128
+ <!-- Diagram content (shape and connector positions) -->
129
+ <edmx:Diagrams>
130
+ <Diagram Name="Model" >
131
+ <EntityTypeShape EntityType="Model.Product" Width="1.5" PointX="8" PointY="1.75" Height="1.787985026041667" />
132
+ <EntityTypeShape EntityType="Model.Category" Width="1.5" PointX="5.25" PointY="1.875" Height="1.59568359375" />
133
+ <AssociationConnector Association="Model.CategoryProduct">
134
+ <ConnectorPoint PointX="6.75" PointY="2.672841796875" />
135
+ <ConnectorPoint PointX="8" PointY="2.672841796875" />
136
+ </AssociationConnector>
137
+ </Diagram>
138
+ </edmx:Diagrams>
139
+ </edmx:Designer>
140
+ </edmx:Edmx>
@@ -0,0 +1 @@
1
+ <%@ ServiceHost Language="C#" Factory="System.Data.Services.DataServiceHostFactory" Service="Entities" %>
@@ -0,0 +1,27 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!--
3
+ For more information on how to configure your ASP.NET application, please visit
4
+ http://go.microsoft.com/fwlink/?LinkId=169433
5
+ -->
6
+ <configuration>
7
+ <system.web>
8
+ <compilation debug="false" targetFramework="4.0">
9
+ <assemblies>
10
+ <add assembly="System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
11
+ <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
12
+ <add assembly="System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
13
+ <add assembly="System.Data.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
14
+ <add assembly="System.Data.Services.Client, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
15
+ </assemblies>
16
+ <buildProviders>
17
+ <add extension=".edmx" type="System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider" />
18
+ </buildProviders>
19
+ </compilation>
20
+ </system.web>
21
+ <connectionStrings>
22
+ <add name="ModelContainer" connectionString="metadata=res://*/App_Code.Model.csdl|res://*/App_Code.Model.ssdl|res://*/App_Code.Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\TestDB.mdf;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
23
+ </connectionStrings>
24
+ <system.serviceModel>
25
+ <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
26
+ </system.serviceModel>
27
+ </configuration>
@@ -0,0 +1,16 @@
1
+ Sham.define do
2
+ category_name { |i| "Category #{i}" }
3
+ product_name { |i| "Widget #{i}" }
4
+ price { ['5.00', '10.00', '20.00', '15.00' , '25.00', '7.50'].rand }
5
+ end
6
+
7
+ Product.blueprint do
8
+ Name { Sham.product_name }
9
+ Description "Test Widget"
10
+ Price { Sham.price }
11
+ Category { Category.make }
12
+ end
13
+
14
+ Category.blueprint do
15
+ Name { Sham.category_name }
16
+ end