Crear CRUD en MVC Api con C# .Net, Entity Framework y Sql Server

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 พ.ย. 2024

ความคิดเห็น • 97

  • @hdeleonnet
    @hdeleonnet  5 ปีที่แล้ว +12

    Entity Framework en 10 minutos: th-cam.com/video/6nT-RjMEG0o/w-d-xo.html

    • @jadenjasper3471
      @jadenjasper3471 3 ปีที่แล้ว

      A trick : you can watch movies at flixzone. I've been using it for watching all kinds of movies during the lockdown.

    • @alfredernesto8386
      @alfredernesto8386 3 ปีที่แล้ว

      @Jaden Jasper yup, I have been watching on Flixzone for years myself :D

  • @CarlosMayorgaNi
    @CarlosMayorgaNi 5 ปีที่แล้ว +8

    Hola, buenas tardes, soy programador de muchos años y me gusta mucho cuando encuentro este tipo de vides, rápidos, precisos, mucho oro y poca tierra, gracias por compartir el conocimiento.

  • @williamalpuche5870
    @williamalpuche5870 5 ปีที่แล้ว +6

    Caray, por fin alguien que lo explica una forma mas "colonial" pero entendibile... muchas gracias, me has ayudado bastante

  • @boyelf88
    @boyelf88 5 ปีที่แล้ว +14

    Saludos. Muchisimas gracias por el video. Solo escribo para que tomen en cuenta que si usan para el model un ejemplo con una tabla que contiene un foreign key, puede que les desvuelva el mensaje de excepcion: The 'ObjectContent`1' type failed to serialize the response body for content type 'application/json; charset=utf-8'. Si ese es el caso, en el archivo .cs de la clase del modelo, al atributo que es foreign key agreguenle el annotation [JsonIgnore] (este es el o los atributos que son virtual).

  • @Dot-Nerd
    @Dot-Nerd 4 ปีที่แล้ว +3

    Eres la verga we, hoy desperte sin saber hacer un API y gracias a tus videos ya tengo una hecha y funcional.. claro ya traia mis bases de entity y c#. Mil gracias!!

  • @josed5866
    @josed5866 10 หลายเดือนก่อน

    muchas gracias por el video hermano

  • @kenm7604
    @kenm7604 4 ปีที่แล้ว

    muy buen contenido,fácil de entender y expresarte, me suscribo...gracias por tu esfuerzo...

  • @4dgtsvnhn51
    @4dgtsvnhn51 4 ปีที่แล้ว +1

    muy buena explicación, muchas gracias por el vídeo

  • @deldago15
    @deldago15 2 ปีที่แล้ว

    Buen aporte...

  • @nico1999108
    @nico1999108 4 ปีที่แล้ว +1

    alto crack amigo, sos el rey

  • @alfirian
    @alfirian 5 ปีที่แล้ว +13

    ""Mi nombre es Héctor de León y, tomen alcohol..." xD

  • @josereynelchauxperez947
    @josereynelchauxperez947 5 ปีที่แล้ว

    Excelente material, muchas gracias !!!

  • @edwinberrones5570
    @edwinberrones5570 5 ปีที่แล้ว +1

    Buen video, explica muy bien. Saludos y sigue asi

  • @EDW4RD249
    @EDW4RD249 3 ปีที่แล้ว

    Maestro!

  • @eliassilva7228
    @eliassilva7228 5 ปีที่แล้ว +1

    Muy bueno Hector

  • @ovallefdz
    @ovallefdz 3 ปีที่แล้ว

    Excelente muy bien explicado y directo al punto, solo una pregunta tendrás un video agregando token, muchas gracias por compartir Salu2!!!!

  • @josevalencia8721
    @josevalencia8721 3 ปีที่แล้ว +1

    hola bro , tengo un problema pongo el host en el Fiddler , me voy a inspectors luego a texview y no me aparece nada del contenido de las tablas

  • @AlexGamerPanama
    @AlexGamerPanama 4 ปีที่แล้ว +1

    graciias

  • @douglasramirez6300
    @douglasramirez6300 3 ปีที่แล้ว

    jaja "andale, manda tu uto mensaje.. buenisimo"

  • @SerialNOob
    @SerialNOob 2 ปีที่แล้ว

    Tienes algún video para consumir esa api ya dentro del sitio ? a manera de vistas?

  • @lucianomolina3793
    @lucianomolina3793 4 ปีที่แล้ว +1

    crack

  • @juanquinteros1013
    @juanquinteros1013 4 ปีที่แล้ว

    hola cree la api web y me funciono sin problemas, pero me cambio el orden de la clase cuando es en formato XML..
    como puedo dejarla tal cual como esta la clase...??

  • @jesussg792
    @jesussg792 4 ปีที่แล้ว +1

    Disculpa crack, me ha servido bastante pero te consulto ¿tienes algún video donde expliques como consumir la api?

    • @hdeleonnet
      @hdeleonnet  4 ปีที่แล้ว

      th-cam.com/video/UlqnQO3n2SA/w-d-xo.html

  • @sucoec
    @sucoec 4 ปีที่แล้ว

    Hola Héctor, antes de nada agradecerte mucho por los excelentes tutoriales, estoy usando VS Community 2019 y cuando creo la partial class para las validaciones sigue insertando valores vacíos pero cuando coloco la notación en la clase generada por entity framework si hace la validación, tiene que ver algo el VS?

  • @giovanaflorsuyoshahuana6505
    @giovanaflorsuyoshahuana6505 4 ปีที่แล้ว

    Hola estuvo genial con Backend, Tienes uno con MVC con vistas

    • @hdeleonnet
      @hdeleonnet  4 ปีที่แล้ว

      th-cam.com/video/nlW6cl7BTkY/w-d-xo.html

  • @chotrufa
    @chotrufa 3 ปีที่แล้ว

    hola hector saludos desde Venezuela, una pregunta, la verdad no se mucho de esto y lo que he aprendido es viendo tus videos.
    por lo menos yo he visto que los webservices trabajan por la red publicando el webservice y los clientes lo consumen. pero si yo quisiera hacer lo mismo con la api como se haría?

  • @gerardohernandezmorelos934
    @gerardohernandezmorelos934 4 ปีที่แล้ว

    como puedo consumir esta api creada desde un proyecto mvc , lo hice con .ajax pero al momento de que le doy clic al boton de alumnos para que me muestre el servicio get desde que hice en mi api me lo manda en alert y quiero cambiarlo aun tex box o algo asi como puedo hacer eso
    te lo agradeceria bastante

  • @DARKDCHARLIE
    @DARKDCHARLIE 5 ปีที่แล้ว +1

    puedes hacer un tutorial sobre variables de configuracion? de properties.settings.default

  • @robertsarmiento9824
    @robertsarmiento9824 5 ปีที่แล้ว +1

    😎

  • @alexdevorigin1
    @alexdevorigin1 4 ปีที่แล้ว

    Amigo puedes crear el mismo pero integrando net core 3.1? cambiaria mucho a diferencia de net framework?

  • @iranvazquez719
    @iranvazquez719 4 ปีที่แล้ว

    apenas voy entendiendo esto xd pero como podria consumir esta api a traves de jquery ajax?

  • @eduardo.rivera
    @eduardo.rivera 4 ปีที่แล้ว

    Hola Héctor tienes algún video con entityframework con el Black end para insertar registros tomándolos de diferentes tablas?

    • @hdeleonnet
      @hdeleonnet  4 ปีที่แล้ว

      th-cam.com/video/YKOcp_Y9w4k/w-d-xo.html

  • @luisrojas8416
    @luisrojas8416 4 ปีที่แล้ว

    se necesita el telerik necesariamente?

    • @hdeleonnet
      @hdeleonnet  4 ปีที่แล้ว

      Puedes usar postman

  • @DonPanchoVilla
    @DonPanchoVilla 5 ปีที่แล้ว

    Con que conviene mas trabajar MVC Api .net o MCF microsoft comunication fundation?

    • @hdeleonnet
      @hdeleonnet  5 ปีที่แล้ว

      Apirest mvc. Soap wcf

  • @chrishfox5263
    @chrishfox5263 4 ปีที่แล้ว

    Muy informativo amigo...
    Si uno desea consumir es api como se hace para que la picture se vea en imagen?

    • @hdeleonnet
      @hdeleonnet  4 ปีที่แล้ว

      depende el cliente que vas a utilizar, si es html con el tag

    • @chrishfox5263
      @chrishfox5263 4 ปีที่แล้ว

      Pero como se puede convertir el byte[] que se aguarda en la BD a una imagen.. tienes alguna ayuda?

    • @hdeleonnet
      @hdeleonnet  4 ปีที่แล้ว

      En c# hay funciones en clase file para eso. Aunque lo mejor es regresar la url

    • @chrishfox5263
      @chrishfox5263 4 ปีที่แล้ว

      Osea que por medio del Path?

    • @hdeleonnet
      @hdeleonnet  4 ปีที่แล้ว

      Yes

  • @alexo2537
    @alexo2537 5 ปีที่แล้ว

    Funciona con cursores o hay debere hacer a manos para que pueda leer las listas??

    • @hdeleonnet
      @hdeleonnet  5 ปีที่แล้ว

      Como cursores? Dices direcciones de memoria?

    • @alexo2537
      @alexo2537 5 ปีที่แล้ว

      @@hdeleonnet si es que lo voy a probar con oracle.

    • @hdeleonnet
      @hdeleonnet  5 ปีที่แล้ว

      Pero para que quieres direcciones de memoria

  • @FernandoBravoNogues
    @FernandoBravoNogues 4 ปีที่แล้ว

    Excelente Héctor! Muy bueno éste y todos los videos que vi de tu canal.
    Una única discrepancia que tengo, aunque puedo estar equivocado, yo generé este ejemplo desde una tabla ya existente, que no tiene un campo IDENTITY y funciona correctamente. Antes de seguir avanzando, me gustaría saber con que me puedo encontrar, ya que dices que daría error. Gracias. Saludos desde Uruguay

    • @hdeleonnet
      @hdeleonnet  4 ปีที่แล้ว +1

      solo tendrías problemas si el primary key tu al insertarlo repitieras el valor, si no es asi no hay de que preocuparse

    • @FernandoBravoNogues
      @FernandoBravoNogues 4 ปีที่แล้ว +1

      @@hdeleonnet Perfecto. Entendido. Yo hago los controles para que eso no suceda. Muchas gracias por tu pronta respuesta!

  • @iAgusClientD
    @iAgusClientD ปีที่แล้ว

    No me aparece mysql server para conectarme

  • @ferfs4554
    @ferfs4554 4 ปีที่แล้ว

    Después de tener las tablas pero no con todos los campos, como agrego un nuevo campo? Me refiero al archivo .edmx, como se modifica?

    • @hdeleonnet
      @hdeleonnet  4 ปีที่แล้ว +1

      click derecho al diagrama -> actualizar

    • @ferfs4554
      @ferfs4554 4 ปีที่แล้ว

      @@hdeleonnet Gracias, pero como hago para que no se agreguen todos los campos, por ejemplo la tabla tiene 20 campos y yo solo quiero 10.

  • @jose67529
    @jose67529 5 ปีที่แล้ว +3

    por favor publica un CRUD con .NET CORE

  • @federicogabrielsoler4661
    @federicogabrielsoler4661 5 ปีที่แล้ว

    Hola disculpa, a este proyecto como podemos hacer para que nuestra web se vea mejor? ya sea con Angular js bootstrap , etc, podrias ayudarme o algun sitio con el paso a paso para poder realizarlo? muchas gracias

    • @hdeleonnet
      @hdeleonnet  5 ปีที่แล้ว

      Hay miles de templates gratuitps. Busca dependiendo tu tecnologia front

  • @marcosgalaviz4904
    @marcosgalaviz4904 5 ปีที่แล้ว

    Excelente video, pero tengo un problema yo necesito hacer un api rest pero mas para consultas complejas de la BD, es decir tengo que hacer Querys a la BD uniendo varias tablas y quiero consumirlos via un api rest, el framework solo es para tablas, ¿que recomiendas hacer si tengo esa necesidad de armar mis propias consultas uniendo varias tablas?

    • @hdeleonnet
      @hdeleonnet  5 ปีที่แล้ว

      th-cam.com/video/kB6995w7bUc/w-d-xo.html

  • @ulisestabares2
    @ulisestabares2 4 ปีที่แล้ว

    al realizar el test me marca error 500 Internal Server Error

  • @camilocadavid4935
    @camilocadavid4935 2 ปีที่แล้ว

    ExceptionMessage": "El tipo 'ObjectContent`1' no pudo serializar el cuerpo de respuesta para el tipo de contenido 'application/json; charset=utf-8'.",

  • @earlwood7826
    @earlwood7826 5 ปีที่แล้ว

    Buen video! Pero tengo una duda con lo del MetadataType del minuto 15:34 ...
    En Postman hago las peticiones Get y si funciona pero al hacer la petición Post no respeta si está nulo el campo name, ni siquiera entra al
    if (!ModelState.IsValid)
    {
    return BadRequest(ModelState);
    }
    guarda el registro como NULL..
    y puse el Content-type application/json en PostMan
    Clase de Entity Framework:
    namespace MVCCrudApi2.Models
    {

    public partial class people
    {
    public int id { get; set; }
    public string name { get; set; }
    public Nullable age { get; set; }

    }
    }
    Clase de Validations:
    using System.ComponentModel.DataAnnotations;
    namespace MVCCrudApi2.Models
    {
    public partial class people
    {
    [MetadataType(typeof(people.MetaData))]
    sealed class MetaData
    {
    [Required]
    public string name;
    }
    }
    }
    Que es lo que está mal?
    Saludos y gracias desde ya

    • @hdeleonnet
      @hdeleonnet  5 ปีที่แล้ว

      Pon tu controller

    • @earlwood7826
      @earlwood7826 5 ปีที่แล้ว

      @@hdeleonnet
      Completo:
      using System;
      using System.Collections.Generic;
      using System.Data;
      using System.Data.Entity;
      using System.Data.Entity.Infrastructure;
      using System.Linq;
      using System.Net;
      using System.Net.Http;
      using System.Web.Http;
      using System.Web.Http.Description;
      using MVCCrudApi2.Models;
      namespace MVCCrudApi2.Controllers
      {
      public class peopleController : ApiController
      {
      private MVCDBAPIEntities db = new MVCDBAPIEntities();
      // GET: api/people
      public IQueryable Getpeople()
      {
      return db.people;
      }
      // GET: api/people/5
      [ResponseType(typeof(people))]
      public IHttpActionResult Getpeople(int id)
      {
      people people = db.people.Find(id);
      if (people == null)
      {
      return NotFound();
      }
      return Ok(people);
      }
      // PUT: api/people/5
      [ResponseType(typeof(void))]
      public IHttpActionResult Putpeople(int id, people people)
      {
      if (!ModelState.IsValid)
      {
      return BadRequest(ModelState);
      }
      if (id != people.id)
      {
      return BadRequest();
      }
      db.Entry(people).State = EntityState.Modified;
      try
      {
      db.SaveChanges();
      }
      catch (DbUpdateConcurrencyException)
      {
      if (!peopleExists(id))
      {
      return NotFound();
      }
      else
      {
      throw;
      }
      }
      return StatusCode(HttpStatusCode.NoContent);
      }
      // POST: api/people
      [ResponseType(typeof(people))]
      public IHttpActionResult Postpeople(people people)
      {
      if (!ModelState.IsValid)
      {
      return BadRequest(ModelState);
      }
      db.people.Add(people);
      db.SaveChanges();
      return CreatedAtRoute("DefaultApi", new { id = people.id }, people);
      }
      // DELETE: api/people/5
      [ResponseType(typeof(people))]
      public IHttpActionResult Deletepeople(int id)
      {
      people people = db.people.Find(id);
      if (people == null)
      {
      return NotFound();
      }
      db.people.Remove(people);
      db.SaveChanges();
      return Ok(people);
      }
      protected override void Dispose(bool disposing)
      {
      if (disposing)
      {
      db.Dispose();
      }
      base.Dispose(disposing);
      }
      private bool peopleExists(int id)
      {
      return db.people.Count(e => e.id == id) > 0;
      }
      }
      }

  • @sandracastillobravo9747
    @sandracastillobravo9747 4 ปีที่แล้ว

    hola, que versión de .net framework es?

  • @Bracras844
    @Bracras844 5 ปีที่แล้ว

    amigo he seguido tus videos y muy buenos he aprendido mucho, gracias por ello. Ademas tengo una consulta, se puede hacer una API sin MVC, conexión directa a la BD con metodos directos? espero tu pronta respuesta

    • @hdeleonnet
      @hdeleonnet  5 ปีที่แล้ว

      Si, pero no te lo recomiendo

    • @Bracras844
      @Bracras844 5 ปีที่แล้ว

      @@hdeleonnet por que razón no lo recomiendas?

    • @hdeleonnet
      @hdeleonnet  5 ปีที่แล้ว

      @@Bracras844 reinventas la rueda

    • @Bracras844
      @Bracras844 5 ปีที่แล้ว

      @@hdeleonnet pero que es lo que tiene de malo? osea si me puedes decir los contra de eso

    • @hdeleonnet
      @hdeleonnet  5 ปีที่แล้ว

      @@Bracras844 que estas trabajando en algo que ya esta resuelto, es decir, al final vas a terminar haciendo un mvc .net o algo parecido, reinventar la rueda es un antipatrón

  • @MiguelAngel-bf8et
    @MiguelAngel-bf8et 4 ปีที่แล้ว

    Me devuelve: "HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly." al depurar

  • @sacris89
    @sacris89 4 ปีที่แล้ว

    Buenos días,
    Puedes colgar el proyecto otra vez? no funciona salta mucha publicidad basura pero nada del proyecto.
    Si lo puedes colgar en un repositorio como github, dropbox... te lo agradeceremos todos.
    Muchas gracias y buen trabajo.
    Saludos,

  • @ABUELO379
    @ABUELO379 5 ปีที่แล้ว

    Y ahora surgen dos dudas:
    1. Cómo implemento esto para consumirlo desde una app WPF?
    2. (Y más importante) de que manera se le da seguridad a la API para evitar que alguien usando la herramienta que utilizas pueda manipular mi BD?

    • @hdeleonnet
      @hdeleonnet  5 ปีที่แล้ว

      Respuesta de la pregunta 2 ahi se ve access token: Curso MVC Api .Net: th-cam.com/play/PLWYKfSbdsjJg1_t72NSy5hPetthqhacLh.html

    • @hdeleonnet
      @hdeleonnet  5 ปีที่แล้ว +1

      Respuesta pregunta 1. Si funciona en consola funciona en wpf th-cam.com/video/qXWrdxf8d4w/w-d-xo.html

    • @ABUELO379
      @ABUELO379 5 ปีที่แล้ว +1

      Gracias... Excelentes videos....

  • @blindshot6949
    @blindshot6949 4 ปีที่แล้ว

    No soy muy experto en esto, son un noob, pero ¿cómo le hago para hacer esa API remota?, es decir, que yo pueda acceder a ella desde la internet

    • @hdeleonnet
      @hdeleonnet  4 ปีที่แล้ว

      Ip estatica si es que lo pondras en un Servido tuyo y abrir puerto

    • @blindshot6949
      @blindshot6949 4 ปีที่แล้ว

      @@hdeleonnet algún video que me recomiende?

    • @hdeleonnet
      @hdeleonnet  4 ปีที่แล้ว

      Es un tema de red. En mi canal hay videos de publicación, buscalo como publicar sitio iis hdeleon

  • @CarlosRodriguez-ww1fv
    @CarlosRodriguez-ww1fv 4 ปีที่แล้ว

    puedes hacer uno desde 0? :c

    • @hdeleonnet
      @hdeleonnet  4 ปีที่แล้ว

      Curso MVC Api .Net: th-cam.com/play/PLWYKfSbdsjJg1_t72NSy5hPetthqhacLh.html

  • @kvelez
    @kvelez 27 วันที่ผ่านมา

    13:10
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    using System.Linq;
    using System.Web;
    namespace WebApiMVC.Models
    {
    [MetadataType(typeof(Person.PersonMetadata))]
    public partial class Person
    {
    sealed class PersonMetadata
    {
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    [Required, StringLength(50)]
    public string FirstName { get; set; }
    [Required, StringLength(50)]
    public string LastName { get; set; }
    [Range(0, 150)]
    public int Age { get; set; }
    }
    }
    }
    namespace WebApiMVC.Models
    {
    using System;
    using System.Collections.Generic;

    public partial class Person
    {
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
    }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Net.Http;
    using System.Web.Http;
    namespace WebApiMVC.Controllers
    {
    public class PeopleController : ApiController
    {
    public List Get()
    {
    using (var entities = new Models.SQLSERVERDEMOEntities())
    {
    return entities.Person.ToList();
    }
    }
    public Models.Person Get(int id)
    {
    using (var entities = new Models.SQLSERVERDEMOEntities())
    {
    return entities.Person.FirstOrDefault(e => e.Id == id);
    }
    }
    public Models.Person Post([FromBody] Models.Person person)
    {
    using (var entities = new Models.SQLSERVERDEMOEntities())
    {
    entities.Person.Add(person);
    entities.SaveChanges();
    return person;
    }
    }
    public Models.Person Put(int id, [FromBody] Models.Person person)
    {
    using (var entities = new Models.SQLSERVERDEMOEntities())
    {
    var entity = entities.Person.FirstOrDefault(e => e.Id == id);
    entity.FirstName = person.FirstName;
    entity.LastName = person.LastName;
    entity.Age = person.Age;
    entities.SaveChanges();
    return entity;
    }
    }
    public Models.Person Delete(int id)
    {
    using (var entities = new Models.SQLSERVERDEMOEntities())
    {
    var entity = entities.Person.FirstOrDefault(e => e.Id == id);
    entities.Person.Remove(entity);
    entities.SaveChanges();
    return entity;
    }
    }
    }
    }