private void InitializeDbSets(_DbContext derivedClass) { IEnumerable <PropertyInfo> properties = derivedClass.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (PropertyInfo item in properties) { if (item.PropertyType.IsGenericType) { Type GenericDefinition = item.PropertyType.GetGenericTypeDefinition(); if (GenericDefinition == typeof(_DbSet <>)) { #region Create Generic Type Type[] types = item.PropertyType.GetGenericArguments(); Type constructed = GenericDefinition.MakeGenericType(types); object obj = Activator.CreateInstance(constructed); #endregion SendProviderAndConnection(obj, constructed); item.SetValue(derivedClass, obj); } } } }
/// <summary> /// Initialize DbSets /// </summary> /// public void Initialize(_DbContext context) { InitializeDbSets(context); }