public DataService WithScopedService(DataOptionsBuilder builder) { var scopedService = new DataService(); scopedService.UseConfiguration(builder); return(scopedService); }
private static void Main(string[] args) { var data = new Data(); var newConfig = data.Configure().Builder.UseInMemoryDatabase(); data.UseConfiguration(newConfig); // or var options = new DataOptionsBuilder(); options.Builder.UseInMemoryDatabase(); data = new DataService(options); data.Service.Category.UpdateWhere(category => category.Publish == false, category => new Category { Publish = true }).Wait(); data.Service.Product.DeleteWhere(product => product.Publish == false).Wait(); var restrictiveTransaction = new DataOptionsBuilder().Builder.UseSqlServer("connection string", builder => builder.ExecutionStrategy(context => { context.Context.Database.BeginTransaction(IsolationLevel.Serializable); return(context.Context.Database.CreateExecutionStrategy()); })); using (var isolatedOperation = data.WithScopedService(restrictiveTransaction)) { isolatedOperation.Service.User.DeleteWhere(user => user.Inactive).Wait(); } var observer = Observer.Create <Category>(subscription => { subscription.Publish = false; }); data.Service.BulkInsert(data.Service.Category.Where(category => category.Publish), data.Service.CategorySubscription, 10000, 0, 1000, observer).Wait(); data.Service.ClearCache(); }
public void UseConfiguration(DataOptionsBuilder builder) { _data?.Dispose(); _data = new EfStoreContext(builder.Build()); }
public DataService(DataOptionsBuilder builder) { _lastOptions = builder.Build(); }