public MongoDbBucketSet(IMongoDbContext context, IDbSetOptions options) { Check.NotNull(context, nameof(context)); Context = context; if (options is BucketSetOptions bucketOptions) { if (bucketOptions.BucketSize < 1) { throw new ArgumentException($"Invalid bucket size of {bucketOptions.BucketSize}"); } BucketSize = bucketOptions.BucketSize; var property = EntityMapping.GetOrCreateDefinition(typeof(TSubEntity)).GetProperty(bucketOptions.EntityTimeProperty); if (property == null) { throw new ArgumentException($"Property {bucketOptions.EntityTimeProperty} doesn't exist on bucket item."); } if (property.PropertyType != typeof(DateTime)) { throw new ArgumentException($"Property {bucketOptions.EntityTimeProperty} on bucket item isn't of type DateTime"); } EntityTimeProperty = property; } else { throw new ArgumentException("Invalid DbSet options supplied", nameof(options)); } }
public MongoDbBucketSet(IDbSetOptions options) { if (options is BucketSetOptions bucketOptions) { if (bucketOptions.BucketSize < 1) { throw new ArgumentException($"Invalid bucket size of {bucketOptions.BucketSize}"); } BucketSize = bucketOptions.BucketSize; } else { throw new ArgumentException("Invalid DbSet options supplied", nameof(options)); } }
protected virtual IMongoDbSet OnDbSetCreation(PropertyInfo property, IDbSetOptions dbSetOptions) { return(DbSetInitializer.CreateDbSet(property.PropertyType, this, dbSetOptions)); }