October 2012
Intermediate to advanced
504 pages
13h 22m
English
Here's an example Web API controller that exposes a simple data object through Entity Framework's Code First feature. To support this example, we will need three files:
Listing 11.3: Product.cs
public class Product
{
public int ID { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
public int UnitsInStock { get; set; }
}
Listing 11.4: DataContext.cs
public class DataContext : DbContext
{
public DbSet<Product> Products { get; set; }
}
Listing 11.5: ProductsController.cs
public class ProductsController : ApiController { private DataContext db = new DataContext(); // GET api/Products public IEnumerable<Product> GetProducts() { return db.Products; } // GET api/Products/5 public Product GetProduct(int id) { Product product = db.Products.Find(id); if (product == null) { throw new HttpResponseException( Request.CreateResponse( HttpStatusCode.NotFound)); } return product; } // PUT api/Products/5 public HttpResponseMessage PutProduct(int id, Product product) { if (ModelState.IsValid && id == product.ID) { db.Entry(product).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { return Request.CreateResponse( HttpStatusCode.NotFound); } return Request.CreateResponse( HttpStatusCode.OK, product); } else { return Request.CreateResponse( HttpStatusCode.BadRequest); ...Read now
Unlock full access