/// <summary>
        /// Gets the name of the version property for a given entity
        /// </summary>
        /// <param name="modelInspector">An instance the model inspector</param>
        /// <param name="entityType">The type of the entity</param>
        /// <returns>The name of the Version property</returns>
        public static string GetVersionPropertyName(this IModelInspector modelInspector, Type entityType)
        {
            string versionPropertyName = null;

            if (modelInspector.GetType().Equals(typeof(SimpleModelInspector)))
            {
                var declaredModelField = typeof(SimpleModelInspector).GetField("declaredModel", BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Instance);
                if (declaredModelField != null)
                {
                    IModelExplicitDeclarationsHolder modelHolder = declaredModelField.GetValue(modelInspector) as IModelExplicitDeclarationsHolder;
                    if (modelHolder != null)
                    {
                        versionPropertyName = modelHolder.VersionProperties.Where(i => entityType.GetBaseTypes().Contains(i.DeclaringType)).Select(i => i.Name).SingleOrDefault();
                    }
                }
            }

            return(versionPropertyName);
        }