I have an asp.net web API and I am using EF6. Is my usage correct? Would you please guide me? Dbcontext is disposed when the request completed right?
Here is my sample Dbcontext:
public class EPINMiddleWareAPIContext : DbContext { public EPINMiddleWareAPIContext() : base("name=EPINMiddleWareAPIContext") { } public DbSet<InitiateRequest> InitiateRequests { get; set; } public DbSet<InitiateResponse> InitiateResponses { get; set; } public DbSet<Company> Companies { get; set; } public DbSet<ConfirmRequest> ConfirmRequests { get; set; } public DbSet<ConfirmResponse> ConfirmResponses { get; set; } public DbSet<GameBank> GameBanks { get; set; } public DbSet<GameCouponBank> GameCouponBanks { get; set; } }
Here is my ninject Register Services:
private static void RegisterServices(IKernel kernel) { kernel.Bind<EPINMiddleWareAPIContext>().ToSelf().InRequestScope(); }
And my controller:
namespace EPINMiddleWareAPI.Controllers { [System.Web.Http.RoutePrefix("api/v2/pin")] public class InitiatesController : ApiController { private readonly EPINMiddleWareAPIContext context; public InitiatesController(EPINMiddleWareAPIContext context) { this.context = context; } // POST: api/Game //[RequireHttps] For Prod Only [HttpPost, Route("initiation")] public async Task<IHttpActionResult> PostInitiate(InitiateRequest initiate) { #region Is referenceId Unique? if (await Utilities.IsUnique(context, initiate) > 0) { ModelState.AddModelError("referenceId", "This referenceId has used!"); } #endregion if (!ModelState.IsValid) { return BadRequest(ModelState); } #region Validate Company var responseMsg = new HttpResponseMessage(); var isUsernamePasswordValid = false; //Find Company in our database var companyCheck = await (context.Companies.Where(p => p.customerID == initiate.customerID)).SingleOrDefaultAsync(); ... ```