public void RegisterServices(Container container) { // Required: How to instantiate the DbContext; and share it amongst objects participating in a single request. var webApiRequestLifestyle = new WebApiRequestLifestyle(true); var hybridLifestyle = Lifestyle.CreateHybrid(() => webApiRequestLifestyle.GetCurrentScope(container) == null, Lifestyle.Transient, webApiRequestLifestyle); container.Register(() => { var db = new ScrumDb(); db.AttachDbEnums(); return db; }, hybridLifestyle); container.RegisterLazy<ScrumDb>(); // Required: Register global datamodel metadata var metadataRegistration = hybridLifestyle.CreateRegistration<DbContextMetadata<ScrumDb>>(container); container.AddRegistration(typeof(IContainerMetadata<ScrumDb>), metadataRegistration); container.AddRegistration(typeof(IContainerMetadata), metadataRegistration); // Query validation settings could be specified here //container.RegisterInstance(new ODataValidationSettings //{ // MaxExpansionDepth = 15, // MaxTop = 200 //}); //.Named<ODataValidationSettings>("Edit"); TODO: Figure out how to separate ODataValidationSettings for Edit controllers vs ReadOnly controllers }
/// <summary> /// Registers application-level IoC settings. /// </summary> /// <param name="container"></param> public void RegisterServices(Container container) { container.RegisterWebApiRequestOrTransient<TodoListContext>(); container.RegisterLazy<TodoListContext>(); // Required: Register global datamodel metadata (IContainerMetadata and IContainerMetadata<DbContext>) var mmRegistration = Lifestyle.Singleton.CreateRegistration(() => new DbContextMetadata<TodoListContext>(new TodoListContext()), container); container.AddRegistration(typeof(IContainerMetadata), mmRegistration); container.AddRegistration(typeof(IContainerMetadata<TodoListContext>), mmRegistration); // Query validation settings could be specified here container.RegisterSingleton(new ODataValidationSettings() { MaxExpansionDepth = 5 }); }
/// <summary> /// Registers application-level IoC settings. /// </summary> /// <param name="container"></param> public void RegisterServices(Container container) { container.RegisterWebApiRequestOrTransient<ScrumDb>(); container.RegisterLazy<ScrumDb>(); // Required: Register global datamodel metadata (IContainerMetadata and IContainerMetadata<DbContext>) var mmRegistration = Lifestyle.Singleton.CreateRegistration(() => new DbContextMetadata<ScrumDb>(new ScrumDb()), container); container.AddRegistration(typeof(IContainerMetadata), mmRegistration); container.AddRegistration(typeof(IContainerMetadata<ScrumDb>), mmRegistration); // Query validation settings could be specified here container.RegisterSingleton(new ODataValidationSettings() { MaxExpansionDepth = 5, MaxTop = 200 }); //.Named<ODataValidationSettings>("Edit"); TODO: Figure out how to separate ODataValidationSettings for Edit controllers vs ReadOnly controllers }
public void RegisterServices(Container container) { container.RegisterWebApiRequestOrTransient<EStoreDb>(); container.RegisterLazy<EStoreDb>(); // Required: Register global datamodel metadata var mmRegistration = Lifestyle.Singleton.CreateRegistration<DbContextMetadata<EStoreDb>>(container); container.AddRegistration(typeof(IContainerMetadata), mmRegistration); container.AddRegistration(typeof(IContainerMetadata<EStoreDb>), mmRegistration); // Query validation settings could be specified here container.RegisterSingleton(new ODataValidationSettings() { MaxExpansionDepth = 5, MaxTop = 200 }); }
/// <summary> /// Registers application-level IoC settings. /// </summary> /// <param name="container"></param> public void RegisterServices(Container container) { // Support sharing the DbContext amongst objects participating in a single request; // but if there is no request, just make it transient. var webApiRequestLifestyle = new WebApiRequestLifestyle(true); var hybridLifestyle = Lifestyle.CreateHybrid(() => webApiRequestLifestyle.GetCurrentScope(container) == null, Lifestyle.Transient, webApiRequestLifestyle); container.Register<TodoListContext>(hybridLifestyle); container.RegisterLazy<TodoListContext>(); // Required: Register global datamodel metadata (IContainerMetadata and IContainerMetadata<DbContext>) var mmRegistration = Lifestyle.Singleton.CreateRegistration<DbContextMetadata<TodoListContext>>(container); container.AddRegistration(typeof(IContainerMetadata), mmRegistration); container.AddRegistration(typeof(IContainerMetadata<TodoListContext>), mmRegistration); // Query validation settings could be specified here container.RegisterSingle(new ODataValidationSettings() { MaxExpansionDepth = 5, MaxTop = 200 }); }