public static bool ShouldUseTableValuedParameters <TEntity>( this SqlServerManipulationExtensionsConfiguration configuration, IReadOnlyCollection <IProperty> properties, IReadOnlyCollection <TEntity> entities) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } EntityConifugration entityConfiguration = configuration.GetEntityConifugrationOrDefault <TEntity>(); int rowThreshold = entityConfiguration?.UseTableValuedParametersRowTreshold ?? configuration.DefaultUseTableValuedParametersRowTreshold; int parameterThreshold = entityConfiguration?.UseTableValuedParametersParameterCountTreshold ?? configuration.DetaultUseTableValuedParametersParameterCountTreshold; return(entities.Count > rowThreshold || entities.Count * properties.Count > parameterThreshold); }
public static bool DoesEntityHaveTriggers <TEntity>(this SqlServerManipulationExtensionsConfiguration configuration) => configuration.GetEntityConifugrationOrDefault <TEntity>()?.HasTrigger ?? false;
private static EntityConifugration GetEntityConifugrationOrDefault(this SqlServerManipulationExtensionsConfiguration configuration, Type entityType) => configuration.EntityConfigurations.TryGetValue(entityType, out EntityConifugration entityConifugration) ? entityConifugration : null;
private static EntityConifugration GetEntityConifugrationOrDefault <TEntity>(this SqlServerManipulationExtensionsConfiguration configuration) => configuration.GetEntityConifugrationOrDefault(typeof(TEntity));
public static bool ShouldUseMerge <TEntity>(this SqlServerManipulationExtensionsConfiguration configuration) => configuration.GetEntityConifugrationOrDefault <TEntity>()?.UseMerge ?? configuration.UseMerge;
public static bool ShouldUseMemoryOptimizedTableTypes(this SqlServerManipulationExtensionsConfiguration configuration, Type entityType) => configuration.GetEntityConifugrationOrDefault(entityType)?.UseMemoryOptimizedTableTypes ?? configuration.UseMemoryOptimizedTableTypes;
public static ITableValuedParameterInterceptor GetTvpInterceptor(this SqlServerManipulationExtensionsConfiguration configuration, Type entityType) => configuration.GetEntityConifugrationOrDefault(entityType)?.TableValuedParameterInterceptor ?? DefaultTableValuedParameterInterceptor.Instance;
public static SqlServerTableTypeIndex GetTableTypeIndex(this SqlServerManipulationExtensionsConfiguration configuration, Type entityType) => configuration.GetEntityConifugrationOrDefault(entityType)?.TableTypeIndex ?? configuration.DefaultTableTypeIndex;
public static int GetHashIndexBucketCount(this SqlServerManipulationExtensionsConfiguration configuration, Type entityType) => configuration.GetEntityConifugrationOrDefault(entityType)?.HashBucketSizetHashIndexBucketCount ?? configuration.DefaultHashIndexBucketCount;