MVC3 + EF + Ajax
-
sexta-feira, 31 de agosto de 2012 14:36Olá,
estou querendo montar um processo tipo carrinho de compras. Aonde vou ter o objeto "COMPRA" e o objeto "ITENS". Mas tenho dúvida como implementar isto...
Qual o melhor jeito? Tipo, crio um model, do tipo COMPRA e depois adiciona a lista de "ITENS" e vou adicionado os dados?
Como devo criar o objeto "COMPRA" e aonde? Como funciona isto?
Quero usar Ajax para dar "insert" nos dados...E outra coisa que eu também tenho dúvida, como posso atualizar a página sem dar reload, dos dados adicionados na "COMPRA".
Ou é melhor fazer tudo por JQuery e indo salvando os dados no banco de dados? Assim não existiria nenhum problema, com queda de conexão ou trocar de micro...
Abs
Marlon Tiedt
www.sesmt.com.br
- Editado Marlon Tiedt sexta-feira, 31 de agosto de 2012 14:56
- Editado Marlon Tiedt sexta-feira, 31 de agosto de 2012 14:59
- Editado Marlon Tiedt sexta-feira, 31 de agosto de 2012 16:50
Todas as Respostas
-
sexta-feira, 31 de agosto de 2012 18:55Moderador
Olá Marlon.
Sua pergunta relaciona diferentes tecnologias: EF, Ajax e ASp.Net MVC.
Nesta parte do fórum do MSDN vc encontrará melhores comentários sobre acesso a dados, pois aqueles que visitam este fórum gostam mais deste assunto. Recomendo que divida sua pergunta em duas partes, uma para este fórum e outra para o fórum de ASP.Net.
Para resolver sua pergunta sobre o EF, acredito que utilizando EF Code First vc pode resolver isso de forma bem simples. O código abaixo faz isso pra ti.
class Program { static void Main(string[] args) { InserirNovaCompraEProduto(); RealizarConsultas(); } static void RealizarConsultas() { using (Contexto contexto = new Contexto()) { var produtosNaBase = contexto.Produtos; var comprasNaBase = contexto.Compras.Include(i => i.Items); var itemsNaBase = contexto.ItemCompras.Include(c => c.Compra).Include(p => p.Produto); } } static void InserirNovaCompraEProduto() { Produto novoProduto = new Produto(); novoProduto.Nome = "Produto de teste"; using (Contexto contexto = new Contexto()) { contexto.Produtos.Add(novoProduto); contexto.SaveChanges(); } Compra novaCompra = new Compra(); novaCompra.Data = DateTime.Now; using (Contexto contexto = new Contexto()) { contexto.Compras.Add(novaCompra); contexto.SaveChanges(); } ItemCompra novoItem = new ItemCompra(); novoItem.Compra = novaCompra; novoItem.Produto = novoProduto; using (Contexto contexto = new Contexto()) { contexto.Entry(novoItem.Produto).State = System.Data.EntityState.Modified; contexto.Entry(novoItem.Compra).State = System.Data.EntityState.Modified; contexto.ItemCompras.Add(novoItem); contexto.SaveChanges(); } } } public class Contexto : DbContext { public DbSet<Compra> Compras { get; set; } public DbSet<Produto> Produtos { get; set; } public DbSet<ItemCompra> ItemCompras { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Compra>() .HasMany(i => i.Items) .WithRequired(c => c.Compra); modelBuilder.Entity<ItemCompra>() .HasRequired(p => p.Produto); } } public class Compra { public int Id { get; set; } public DateTime Data { get; set; } public List<ItemCompra> Items { get; set; } } public class Produto { public int Id { get; set; } public string Nome { get; set; } } public class ItemCompra { public int Id { get; set; } public Compra Compra { get; set; } public Produto Produto { get; set; } public int Quantidade { get; set; } }
[]s!Fernando Henrique Inocêncio Borba Ferreira
Microsoft MVP - Data Platform Development
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.com/
Twitter: @ferhenrique
Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil -
sexta-feira, 31 de agosto de 2012 19:00
Boa Tarde amigo.
Esse link tem um exemplo que particulamente achei basico mas muito bom .
-
sexta-feira, 31 de agosto de 2012 19:08Moderador
Olá Valdir,
Uma frase: Macoratti é o cara!
[]s!
Fernando Henrique Inocêncio Borba Ferreira
Microsoft MVP - Data Platform Development
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.com/
Twitter: @ferhenrique
Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

