none
Problemas con referencias para hacer CRUD de datos con ASP MVC RRS feed

  • Pregunta

  • Hola, foreros, como estan? muchas gracias por leer mi post.

    He estado aprendiendo poco a poco ASP MVC 3 con los proyectos de ejemplo que tienen Microsoft aqui ([url]http://www.asp.net/MVC[/url]), con el ejercicio de MusicStore, y MovieStore.

    Quise implementarlo en un proyecto en el que estoy trabajando, siguiendo los pasos mencionados, pero en vez de adjuntar la base de datos, la pusimis en un servidor aparte, trayendo el modelo con el asistente de visual studio, como lo ven en las siguientes imagenes.





    Luedo de realizar esto, e instalar las librerias de EFCOdeFirst, y hacer un buid a la solución no he podido realizar lo mismo que realziaba en los ejercicios, no me muestra el Intellisense las palabras reservadas Add, Find, etc..., siendo imposible para mi terminar los controladores como salian en los ejercicios, pueden observar el ejemplo en la siguiente linea:

    db.user_login.AddObject(new_login); // Aqui debe ser Add en vez de AddObject, error con alguna referencia

    Les dejo mi codigo para que me puedan ayudar.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using WaterAffordable.Models;
    
    /* Codigo Omitido */
    
    public ActionResult Create()
        {
          var new_login = new user_login();
          return View(new_login);
    
        }
    
        //
        // POST: /Users/Create
    
        [HttpPost]
        public ActionResult Create(user_login new_login)
        {
          try
          {
            // TODO: Add insert logic here
            if (ModelState.IsValid)
            {
              //Insert Logic Here
              //db.user_login.Add(new_login);
              db.user_login.AddObject(new_login); // Aqui debe ser Add en vez de AddObject, error con alguna referencia
              db.SaveChanges();
              return RedirectToAction("Index");
            }
            else
            {
              //return some error
              return RedirectToAction("Create");
            }
            
          }
          catch
          {
            return RedirectToAction("Index");
          }
          
        }
    
    /* Codigo Omitido */
    miércoles, 9 de febrero de 2011 16:35

Respuestas

  • Hola, warbandit.

    Así al vistazo, me parece que el problema se debe a que el tutorial que estás siguiendo utiliza EFCodeFirst para el acceso a datos, mientras que, según entiendo por lo que comentas, estás utilizando el Entity Framework "de toda la vida". El problema no tiene que ver con ASP.NET MVC, sólo con el sistema de acceso a datos.

    Al añadir el Entity Data Model has traído al proyecto las referencias de EF y has creado todos los artefactos (entidades y contexto de objetos) que necesitas para acceder a los datos. Si esto es lo que quieres usar, en primer lugar ya no sería necesario instalar CodeFirst y, en segundo, tendrías que transformar el código de los ejemplos (que están escritos para CodeFirst) y adaptarlos a las clases usadas por EF (como ya has podido comprobar con AddObject()).

    En cambio, si lo que quieres es seguir el tutorial paso a paso y utilizar EFCodeFirst, y no quieres o puedes adjuntar la base de datos, no hace falta que crees un Entity Data Model (precisamente CodeFirst hace que esto no sea necesario), simplemente sigue el tutorial y al final modifica la cadena de conexión (http://www.asp.net/mvc/tutorials/getting-started-with-mvc3-part5-cs) para que apunte hacia donde necesites. En cualquier caso, si optas por este camino, mejor que vuelvas unos pasos atrás y elimines del proyecto el Entity Data Model y las referencias hacia EF, que no te hacen falta.

    Espero que te sea de ayuda. Y si no, por aquí nos tienes. :-)

    Suerte!


    José M. Aguilar
    Variable not found
    • Propuesto como respuesta eduard tomàsMVP jueves, 10 de febrero de 2011 7:53
    • Marcado como respuesta Eder Costa viernes, 5 de octubre de 2012 14:34
    miércoles, 9 de febrero de 2011 18:13