public IDbSetConfigurationQueryOptions <TContext, TProperty> ConfigureSet <TProperty>( Expression <Func <TContext, DbSet <TProperty> > > dbSetExpression, string fieldName = "", SetOption setOption = SetOption.IncludeAsFieldAndChild, Expression <Func <TProperty, bool> >?defaultFilter = null) where TProperty : class { var dbSetConfiguration = new DbSetConfiguration { Type = typeof(TProperty), SetOption = setOption, FieldName = fieldName, FilterExpression = defaultFilter }; ((List <IDbSetConfiguration>)DbSetConfigurations).Add(dbSetConfiguration); return(new DbSetConfigurationQueryOptions <TContext, TProperty>(this, dbSetConfiguration)); }
/// <summary> /// Adds a DbSet Adapter /// </summary> /// <typeparam name="TModel">Model Type</typeparam> /// <typeparam name="TEntity">Entity Type</typeparam> /// <typeparam name="TContext">Context Type</typeparam> /// <param name="container">container</param> /// <param name="configCallback">callback for configuration</param> public static void AddDbSetAdapter <TModel, TEntity, TContext>(this IWindsorContainer container, Action <DbSetConfiguration <TEntity> > configCallback = null) where TEntity : class where TContext : DbContext { Arguments.NotNull(container, nameof(container)); var component = Component.For <ISearchableModelSet <TModel> >() .ImplementedBy <DbSetAdapter <TModel, TEntity, TContext> >() .LifestyleTransient(); if (configCallback != null) { var config = new DbSetConfiguration <TEntity>(); configCallback(config); component = component.DependsOn(Dependency.OnValue <IDbSetConfiguration <TEntity> >(config)); } container.Register(component); }
public IQueryOptions <TContext> AddProjection <TOutput>(string name, Func <TContext, IQueryable <TOutput> > projectionFunction) where TOutput : class { var outputType = typeof(TOutput); if (!Regex.IsMatch(outputType.Name, ClassNamePattern)) { throw new GraphityException($"Projections must use a concrete class. Anonymous types are not allowed. Names must match {ClassNamePattern}"); } var dbSetConfiguration = new DbSetConfiguration { Type = typeof(TOutput), SetOption = SetOption.IncludeAsFieldAndChild, FieldName = name, ProjectionFunction = projectionFunction }; ((List <IDbSetConfiguration>)DbSetConfigurations).Add(dbSetConfiguration); return(this); }
internal DbSetConfigurationQueryOptions(QueryOptions <TContext> options, DbSetConfiguration dbSetConfiguration) { _options = options; _dbSetConfiguration = dbSetConfiguration; }
internal PropertyConfigurationQueryOptions(DbSetConfigurationQueryOptions<TContext, TEntity> options, DbSetConfiguration dbSetConfiguration, PropertyConfiguration propertyConfiguration) { _options = options; _dbSetConfiguration = dbSetConfiguration; _propertyConfiguration = propertyConfiguration; }