private void InitialiseDbSets() { var properties = DbSetInitializer.GetDbSetProperties(this); foreach (var property in properties) { var dbSetOptions = DbSetInitializer.GetDefaultDbSetOptions(property); var dbSet = OnDbSetCreation(property, dbSetOptions); property.SetValue(this, dbSet); } }
public virtual IMongoDbSet <TEntity> Set <TEntity>() where TEntity : class { var properties = DbSetInitializer.GetDbSetProperties(this); var existing = properties.FirstOrDefault(p => p.PropertyType.GenericTypeArguments[0] == typeof(TEntity)); if (existing != null) { return(existing.GetValue(this) as IMongoDbSet <TEntity>); } return(new MongoDbSet <TEntity>(this)); }
public void Members_check_arguments() { Assert.Equal( "setFinder", // ReSharper disable once AssignNullToNotNullAttribute Assert.Throws <ArgumentNullException>(() => new DbSetInitializer(null, new ClrPropertySetterSource())).ParamName); var initializer = new DbSetInitializer(new Mock <DbSetFinder>().Object, new ClrPropertySetterSource()); Assert.Equal( "context", // ReSharper disable once AssignNullToNotNullAttribute Assert.Throws <ArgumentNullException>(() => initializer.InitializeSets(null)).ParamName); }
protected virtual IMongoDbSet OnDbSetCreation(PropertyInfo property, IDbSetOptions dbSetOptions) { return(DbSetInitializer.CreateDbSet(property.PropertyType, this, dbSetOptions)); }
public static EntityServicesBuilder UseDbSetInitializer([NotNull] this EntityServicesBuilder builder, [NotNull] DbSetInitializer initializer) { Check.NotNull(initializer, "initializer"); builder.ServiceCollection.AddInstance(initializer); return(builder); }