コード例 #1
0
 public void UpdateProperty(EntityNavigationPropertyInfo property, TModel newModel, IRecursiveEntityUpdater entityUpdater)
 {
     GenericMethodInvoker.InvokeGenericMethod(typeof(IRecursiveEntityUpdater), nameof(IRecursiveEntityUpdater.UpdateEntity),
                                              new Type[] { property.PropertyInfo.PropertyType },
                                              GenericMethodInvoker.DefaultPublicInstanceBindingFlags,
                                              new object[] { property.PropertyInfo.GetValue(newModel), entityUpdater },
                                              entityUpdater);
 }
コード例 #2
0
        // TODO: might add a method with lambda expression that selects model property
        public void UpdateCollectionProperty(IDbContextReflector reflector, EntityNavigationPropertyInfo property, TModel newModel, bool isNew, IEntityUpdater entityUpdater)
        {
            var genericArguments = property.PropertyInfo.PropertyType.GetGenericArguments();

            var genericType = typeof(ICollectionPropertyUpdater <>).MakeGenericType(typeof(TModel));

            GenericMethodInvoker.InvokeGenericMethod(genericType, nameof(ICollectionPropertyUpdater <TModel> .UpdateCollection),
                                                     genericArguments,
                                                     GenericMethodInvoker.DefaultPublicInstanceBindingFlags,
                                                     new object[] { reflector, property, newModel, isNew, entityUpdater },
                                                     this.CollectionPropertyUpdater);
        }