title: Exception using dynamic properties in OData service
body: <p>I have defined these classes:</p>
  
  <pre><code>public class Report
  {
      [Key]
      public long ID { get; set; }
      public List&lt;ReportRow&gt; Rows { get; set; }
  }
  
  public class ReportRow
  {
      public IDictionary&lt;string, object&gt; Values { get; set; }
  }
  </code></pre>
  
  <p>And I've configured the site like so;</p>
  
  <pre><code>var rowType = builder.ComplexType&lt;ReportRow&gt;();
  rowType.HasDynamicProperties(c =&gt; c.Values);
  var reportType = builder.EntityType&lt;Report&gt;();
  reportType.Property(c =&gt; c.ID);
  reportType.CollectionProperty(c =&gt; c.Rows);
  
  builder.EntitySet&lt;Report&gt;("Reports");
  config.MapODataServiceRoute(
      routeName: "ODataRoute",
      routePrefix: null,
      model: builder.GetEdmModel()
  );
  </code></pre>
  
  <p>But I just get this exception when I call <code>config.MapODataServiceRoute</code> above;</p>
  
  <pre><code>An exception of type 'System.ArgumentException' occurred in System.Web.OData.dll but was not handled in user code
  
  Additional information: Found more than one dynamic property container in type 'ReportRow'. Each open type must have at most one dynamic property container.
  </code></pre>
  
  <p>If I remove the first two lines from WebApiConfig in the above sample, I do not get the same exception.
  I followed the sample code on this page: <a href="http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/odata-v4/use-open-types-in-odata-v4" rel="nofollow">http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/odata-v4/use-open-types-in-odata-v4</a></p>