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));
        }
Ejemplo n.º 3
0
        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));
 }
Ejemplo n.º 5
0
        public static EntityServicesBuilder UseDbSetInitializer([NotNull] this EntityServicesBuilder builder, [NotNull] DbSetInitializer initializer)
        {
            Check.NotNull(initializer, "initializer");

            builder.ServiceCollection.AddInstance(initializer);

            return(builder);
        }