.NET Core DbContext Usage
14-07-2017using System.Collections.Generic; using System.Linq; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Localization; using VirtualPos.Models; namespace VirtualPos.Controllers { [Route("api/[controller]")] public class BankController : Controller { private readonly BankContext _context; private readonly IStringLocalizer<BankController> _localizer; public BankController(BankContext context, IStringLocalizer<BankController> localizer) { _context = context; _localizer = localizer; if (!_context.Companies.Any()) { _context.Companies.Add(new Company {Id = 1}); _context.SaveChanges(); } } [HttpGet] public IEnumerable<Company> GetAll() { return _context.Companies.ToList(); } [HttpGet("sonuc/{id}", Name = "GetTodo")] public IActionResult GetById(long id) { var item = _context.Companies.FirstOrDefault(t => t.Id == id); if (item == null) return NotFound(); return new ObjectResult(_localizer["Hello"]); } [HttpPost] public IActionResult Create([FromBody] Company item) { if (item == null) return BadRequest(); _context.Companies.Add(item); _context.SaveChanges(); return CreatedAtRoute("GetTodo", new {id = item.Id}, item); } [HttpPut("{id}")] public IActionResult Update(long id, [FromBody] TodoItem item) { if (item == null || item.Id != id) return BadRequest(); var todo = _context.Companies.FirstOrDefault(t => t.Id == id); if (todo == null) return NotFound(); _context.Companies.Update(todo); _context.SaveChanges(); return new NoContentResult(); } [HttpDelete("{id}")] public IActionResult Delete(long id) { var todo = _context.Companies.First(t => t.Id == id); if (todo == null) return NotFound(); _context.Companies.Remove(todo); _context.SaveChanges(); return new NoContentResult(); } } }
Model Class
namespace VirtualPos.Models { public class Company { public int Id { get; set; } public string ClientId { get; set; } public string StoreKey { get; set; } public string StoreType { get; set; } public string Username { get; set; } public string Password { get; set; } } }
Context Class
using Microsoft.EntityFrameworkCore; namespace VirtualPos.Models { public class BankContext : DbContext { public BankContext(DbContextOptions<BankContext> options) : base(options) {} public DbSet<Company> Companies { get; set; } } }
Startup.cs Class
public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddDbContext<BankContext>(opt => opt.UseInMemoryDatabase()); services.AddMvc().AddViewLocalization( LanguageViewLocationExpanderFormat.Suffix, opts => { opts.ResourcesPath = "Resources"; }) .AddDataAnnotationsLocalization(); }