/// <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); }