/// <summary> /// 从现有的 <see cref="IServiceCollection"/> 里添加 <see cref="EntityContext"/> 对象。 /// </summary> /// <param name="setupAction"></param> /// <returns></returns> public static EntityContextOptionsBuilder AddEntityContext(this IServiceCollection services, Action <EntityContextOptions> setupAction = null) { var options = new EntityContextOptions(); setupAction?.Invoke(options); var builder = new EntityContextOptionsBuilder(options); if (services is ServiceCollection coll) { var desc = coll.FirstOrDefault(s => typeof(EntityContext).IsAssignableFrom(s.ServiceType)); if (desc != null) { services.Remove(desc); if (setupAction != null) { services.Configure(setupAction); } services.AddScoped(desc.ServiceType); services.AddScoped(s => options); return(builder); } } return(builder); }
public TestContext(IServiceProvider serviceProvider, EntityContextOptions <TestContext> options, ILogger logger) : base(serviceProvider, options) { if (sp == null) { sp = serviceProvider; } }
public EntityContext(EntityContextOptions options) { _options = options ?? throw new ArgumentException(nameof(options)); _pathBuilder = new PathBuilder(options); _resolver = new EntityResolver(); _hierarchyCollection = new HierarchyCollection(options.Collections, _resolver, _pathBuilder); _relationshipCollection = new RelationshipCollection(options.Collections, _resolver); _recycleBinCollection = new RecycleBinCollection(options.Collections); }
public static IServiceCollection AddEntityContext <T>(this IServiceCollection services, Action <EntityContextOptions <T> > setupAction = null) where T : EntityContext { var options = new EntityContextOptions <T>(); setupAction?.Invoke(options); return(services .AddSingleton(options) .AddScoped <T>()); }
/// <summary> /// 使 <see cref="IServiceCollection"/> 能够使用 Fireasy 中的 <see cref="EntityContext"/> 对象。 /// </summary> /// <param name="services"></param> /// <param name="setupAction"></param> /// <returns></returns> public static EntityContextOptionsBuilder AddEntityContext <TContext>(this IServiceCollection services, Action <EntityContextOptions> setupAction = null) where TContext : EntityContext { var options = new EntityContextOptions(); setupAction?.Invoke(options); var builder = new EntityContextOptionsBuilder(options); if (setupAction != null) { services.Configure(setupAction); } services.AddScoped(s => options); services.AddScoped <TContext>(); return(builder); }
public TestContext(EntityContextOptions options) : base(options) { }
IRepository IRepositoryProvider.CreateRepository(EntityContextOptions options) { return(new EntityRepository <TEntity>(this, options)); }
IRepository IRepositoryProvider.CreateRepository(EntityContextOptions options) { return(_repository ?? (_repository = new EntityRepository <TEntity>(_contextService, this, options))); }
public DbContext(EntityContextOptions options) : base(options) { }
public TestContext1(IServiceProvider serviceProvider, EntityContextOptions <TestContext1> options) : base(serviceProvider, options) { }
public InternalContext(EntityContextOptions options) { Options = options; Database = EntityDatabaseFactory.CreateDatabase(options.ConfigName); InstanceName = options.ConfigName; }
public PathBuilder(EntityContextOptions options) { _options = options; }
//由于startup中注册了多个 EntityContext,因此这里必须使用泛型的 EntityContextOptions //如果只有一个 EntityContext,则可以使用 EntityContextOptions public MongodbContext(EntityContextOptions <MongodbContext> options) : base(options) { }