public string Nome { get; set; } public string Telefone { get; set; } public string Email { get; set; } public string Senha { get; set; }}Segundo passo -> Criar o DBContext do Entity Framework que servira de acesso a dados.public partial class Model1Container : DbContext{ public Model1Container() : base("name=Model1Container") { } public DbSet UsuarioSet { get; set; }}Terceiro Passo -> Adicionar a string de conexao no web.config. O nome da string de conexao deve ser a mesma que esta em seu DBContext, no nosso caso Model1Container.<add name="Model1Container" providerName="System.Data.SqlClient" connectionString="Data Source=DANIMAR-PC\SQLEXPRESS;Initial Catalog=Banco_Dados_Teste;Integrated Security=True"/>Quarto Passo -> Habilitar o Migrations atraves do Package Manager Console, o Migrations permite que o banco de dados seja criado automaticamente. Tambem podemos fazer o processo manualmente, mas neste caso vamos usar o automatico. Digite o comando no console.Enable-Migrations EnableAutomaticMigrationsQuinto Passo -> Adicionar o controller de Usuario que servira como API para os metodos de Inserir e Listar usuarios. Apos isto iremos utilizar atraves de javascript os metodos deste controller.using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Net.Http;using System.Web.Http;using System.Web.Http.OData;using System.Web.Http.OData.Query; namespace ApiTeste.Controllers{ public class UsuarioController : ApiController { private Models.Model1Container db = new Models.Model1Container(); [HttpGet] public ODataResult Get(ODataQueryOptions options) { var results = (options.ApplyTo(db.UsuarioSet) as IQueryable); var count = results.Count(); var limitedResults = results.Take(5).ToArray(); return new ODataResult(limitedResults, null, count); } // POST api/Teste public HttpResponseMessage PostUsuario(ApiTeste.Models.Usuario usuario) { if (ModelState.IsValid) { db.UsuarioSet.Add(usuario); db.SaveChanges(); HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, usuario); response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = usuario.Id })); return response; } else { return Request.CreateResponse(HttpStatusCode.BadRequest); } } }} Aqui esta a pagina que faz o uso da API.<div id="body"> <section class="featured"> <div class="content-wrapper"> <hgroup class="title"> <h1>Lista de usuarios do sistema!</h1> </hgroup> <p> <button data-bind="click: abrirCriacaoUsuario">Criar Novo Usuario</button> </p> </div> </section> <section class="content-wrapper main-content clear-fix"> @using (Html.BeginForm("PostUsuario", "Usuario", FormMethod.Post, new { id = "formularioUsuario", style = "display:none;", data_bind = "submit: SalvarUsuario, with: Usuario" })) { <div> <label>Nome:</label> <input type="text" data-bind="value:Nome" /> </div> <div> <label>Telefone:</label> <input type="text" data-bind="value:Telefone" /> </div> <div> <label>E-mail:</label> <input type="text" data-bind="value:Email" /> </div> <div> <label>Senha:</label> <input type="text" data-bind="value:Senha" /> </div> <div> <button type="submit">Salvar Dados</button> <button type="reset" data-bind="click:$parent.cancelarInsercao">Cancelar</button> </div> } <hr /> <span>Nome</span><input type="text" data-bind="value: filtro" /><button data-bind="click:buscarUsuarios">Pesquisar</button> <table> <thead> <tr> <th data-bind="click: ordenarPorNome">Nome</th> <th data-bind="click: ordenarPorTelefone">Telefone</th> <th data-bind="click: ordenarPorEmail">E-mail</th> </tr> </thead> <tbody data-bind="foreach: ListaUsuarios"> <tr> <td data-bind="text:Nome"></td> <td data-bind="text:Telefone"></td> <td data-bind="text:Email"></td> </tr> </tbody> </table> <a href="#" data-bind="click:anterior">Pagina anterior</a> <a href="#" data-bind="click:proximo">Proxima pagina</a> </section></div> <style type="text/css"> th { cursor: pointer; }</style> @section scripts { <script src="~/Scripts/knockout-2.1.0.js"></script> <script type="text/javascript"> $(document).ready(function () { function UsuarioEntidade(data) { this.Id = ko.observable(data.Id); this.Nome = ko.observable(data.Nome); this.Telefone = ko.observable(data.Telefone); this.Email = ko.observable(data.Email); this.Senha = ko.observable(data.Senha); } function Modelo() { var self = this; self.Usuario = ko.observable(new UsuarioEntidade({})); self.ListaUsuarios = ko.observableArray([]); self.order = ko.observable('Nome'); self.pagina = ko.observable(0); self.filtro = ko.observable(''); self.buscarUsuarios = function () { var url = '/Api/Usuario/Get?$orderby=' + self.order() + '&$skip=' + self.pagina() * 5; if(self.filtro()!='') url += "&$filter=startswith(Nome, '" + self.filtro() + "') eq true"; $.getJSON(url, null, function (data) { var mapeado = $.map(data.Items, function (obj) { return new UsuarioEntidade(obj); }); self.ListaUsuarios(mapeado); }); }; self.SalvarUsuario = function () { var elemento = ko.toJSON(self.Usuario()); jQuery.ajax({ url: '/Api/Usuario/PostUsuario', type: "POST", data: elemento, dataType: "json", contentType: