title: How do you build extensible data model
body: <p>I'm thinking of building a ecommerce application with an extensible data model using NHibernate and Fluent NHibernate. By having an extensible data model, I have the ability to define a Product entity, and allow a user in the application to extend it with new fields/properties with different data types including custom data types. </p>
  
  <p>Example:
  Product can have an addition fields like:
  Size - int
  Color - string
  Price - decimal
  Collection of ColoredImage - name, image (e.g. "Red", red.jpg (binary file))</p>
  
  <p>An additional requirement is to be able to filter the products by these additional/extended fields. How should I implement this?</p>
  
  <p>Thanks in advance.</p>