static void BindEntityContextConfigurationInstance(IEntityContextConfiguration configuration, IContainer container)
        {
            var connectionType = configuration.Connection.GetType();

            if (!container.HasBindingFor(connectionType))
            {
                container.Bind(connectionType, configuration.Connection);
            }
        }
        /// <summary>
        /// Binds given entity context for a specific type (IEntityContext of T)
        /// </summary>
        /// <typeparam name="T">The Type that this vbinding will work for</typeparam>
        /// <param name="configuration">EntityContextConfiguration instance</param>
        /// <param name="container">Container</param>
        public static void BindEntityContextTo <T>(this IEntityContextConfiguration configuration, IContainer container)
        {
            BindEntityContextConfigurationInstance(configuration, container);

            var source = typeof(IEntityContext <>).MakeGenericType(typeof(T));
            var target = configuration.EntityContextType.MakeGenericType(typeof(T));

            container.Bind(source, target);
        }
 /// <summary>
 /// Binds given entity context as default IEntityContext
 /// </summary>
 /// <param name="configuration">EntityContextConfiguration instance</param>
 /// <param name="container">Container</param>
 public static void BindDefaultEntityContext(this IEntityContextConfiguration configuration, IContainer container)
 {
     BindEntityContextConfigurationInstance(configuration, container);
     container.Bind(typeof(IEntityContext <>), configuration.EntityContextType);
 }