Si te ha gustado el video puedes apoyarme con un like y compartiéndolo en tus redes sociales, te agradeceré bastante. Siguiente aquí: ua-cam.com/video/m_SwqJCG7hk/v-deo.html
Veo tus videos desde hace poco y me has ayudado muchísimo, ahora estoy haciendo un e-commerce pero quiero hacer exactamente esto, dividir mi front del backend, en estos momentos estoy pagando mi suscripción porque quiero este curso, ya! Felicidades Héctor, sigue así.👏🏼👏🏼
Eres un capo, te sigo ya desde un tiempo, y siempre me es grato ver tus videos por facilidad como imparte tus clases, por ejemplo éste que yo soy más de ADO y siempre tuve roces con entity, pero con esta clase el panorama me queda más claro y como poder sacar provecho de esta tecnología, te mando un gran saludo desde Perú.
Muchas gracias por este curso, Héctor. Por qué usar: db.Entry(oCliente).State = Microsoft.EntityFrameworkCore.EntityState.Modified; en vez de: db.Update(oCliente); Abrazo desde AR
Muy buenos tus videos, gracias por compartirlos. Solo una pequeña observación, cuando te refieres a "protocolo GET" o "protocolo POST" en realidad te estás refiriendo a métodos, el protocolo es HTTP que tiene varios métodos. Solo eso, en buena onda, para que están recien aprendiendo luego no se confundan.
Antes de ver cómo hacías el método para editar, lo hice así public IActionResult Edit(int id,[FromBody] ClienteRequest model) { Respuesta respuesta = new Respuesta(); try { using (SistemaVentasContext db = new SistemaVentasContext()) { respuesta.Data=db.Clientes.SingleOrDefault(x => x.Id==id).Nombre=model.Nombre; db.SaveChanges(); respuesta.Exito = 1; } } catch (Exception ex) { respuesta.Mensaje = ex.Message; } return Ok(respuesta); } Quisiera saber si afecta a las buenas prácticas. Me está ayudando mucho este curso, muchas gracias
Excelente curso Hector muchas gracias, estos son mis primeros pasos con C# y está super interesante Una consulta, cuando marco el breakpoint para debuggear no me sale ninguna consola o algo que me muestre lo que llega, estoy googleando pero increiblemente no encuentro como "mostrar" esa consola, estoy con la última versión de visual studio
Hector muchas gracias por compartir tus conocimientos me han servido de mucho, tengo una duda no se si tonta, por que creas clases en Request y no utilizas las que ya estan en Models? Gracias por tu respuesta
4 роки тому
Buenas HdeLeon, primero que nada debo felicitarte porque todos tus videos son excelentes y muy explicativos, mil gracias he aprendido muchisimo en tu canal. Por otra parte quería preguntarte si tienes algún video donde consumes esa API que realizaste pero con solicitudes PUT y DELETE desde Windows Forms, tengo tiempo buscando y no consigo un ejemplo concreto donde se explique. Agradezco tu respuesta, saludos.
Hector, tengo una duda, si por ejemplo yo realizo una venta hoy a un cliente llamado Pedro, y luego al mes le actualizo el nombre y le pongo pedrito, no estaría cambiando el histórico de la venta? Como se debería manejar esto? Debería agregar en la venta el nombre del cliente?
Me agrada mucho tu video, también tengo un sistema de ventas pero esta hecho en windows forms, basicamente todo lo manejo en la base de datos y ese sistema lo quiero migrar a web pero tengo una pregunta. Antes de guardar una venta mantengo los datos en una tabla para dar opcion a cancelar algun producto o agregar mas pero para guardar los datos en esa tabla primero consulto si el producto existe y luego en la tabla temporal consulto si ese producto ya esta insertado y si lo esta actualizo pero si no lo esta entonces si inserto. ¿Como podria hacer esto en la API? Ya que por lo que veo se tiene que especificar el metodo por el que vas a entrar y segun como lo hago seria usar varios metodos al mismo tiempo y no termino de entender como hacerlo
Buenas Hector!, una consulta, que opcion marcas para que te muestre sobre la propiedad, funcion, clase, etc la cantidad de veces que es referenciada? me parece algo super util cuando el codigo empieza a crecer
Hola, muchas gracias por este video, sin embargo tengo un problema, el codigo esta igualito, pero en el postman me da ete error: " An error occurred while updating the entries. See the inner exception for details. " sin embargo al hacer un select a mi base el ID que es automatico se va generando en cada prueba que realizo. En que estoy fallando.
me da este error en el postman "An error occurred while updating the entries. See the inner exception for details" en la función del Post. ¿Alguien sabe como solucionarlo y me ayuda? min 11:50
@@hdeleonnet ahh esta bien, esque como lo hiciste tu y eres un crack (eh aprendido tanto de ti) y al no mencionar acerca de ello pense que de este modo sería mejor , losiento, muchos saludos
hector consulta, en la parte de editar un cliente, usaste db.Entry(oCliente).State = Microsoft.EntityFrameworkCore.EntityState.Modified, es lo mismo usar db.Update(oCliente)?
Una consulta la logica de negocios no debería estar en el Modelo? Osea los insertar,buscar, etc. El controlador solo debería llamar a esas funciones ya que tengo entendido que es solo el intermediario entre la vista y el modelo???
Hola profesor, buen video, solo una pregunta. ¿Cuál es la diferencia entre usar: * db.Remove(oCliente); y * db.Entry(oCliente).State = Microsoft.EntityFrameworkCore.EntityState.Deleted;? Los probé y hacen lo mismo pero no se si abra alguna otra repercusión.
a mi me sale el mensaje de Exito, pero no me elimina, será posible algo este bloqueando este proceso, no se alguna configuración, ya eh verificado varias veces y tengo igual el código pero no me elimina.
La razón por la que el parámetro Id Int llegaba en 0, era porque estabas enviándolo como si fueran un JSON, y el método Delete(int id) estaba esperando un número plano. {"Id" : 1} != int;. Tendrías que haber enviado el 1 en el body directamente. Me corrigen si me equivoco.
hola, porque al llamar el metodo con postman o con js el response viene todo en minúsculas, cuando el objeto está declarado con mayúsculas pero en el swagger si lo regresa como lo tengo declarado , hay forma de que lo regrese tal cual lo estoy declarando?
por lo que entiendo con esos 4 metodos ya podras hacer todo tu crud sin importar cuantos parametros necesites enviar? porque yo todo novato hice mi capad de datos a mano y tenia un metodo para cada procedimiento almacenado
al hacer el PUT tengo el sig. error: "The key value at position 0 of the call to 'DbSet.Find' was of type 'int', which does not match the property type of 'long". Cómo puedo solucionarlo?
Hector por favor puedes subir el proyecto de forma local, en nuestra propia maquina, IIS (LOCALHOST) para no tener que compilar a cada rato?? por favor
Cual es la diferencia en hacer la actualizacion con db.Cliente.Update(oCliente); o con db.Entry(oCliente).State = Microsoft.EntityFrameworkCore.EntityState.Modified; ???
Hola Hector, Por alguna extraña razon no anda el HttpPost del Insert, El Get funciona perfecto. El mensaje de error es "An error occurred while updating the entries. See the inner exception for details." he revisado el código como 10 veces y no encuentro el error, no se si sera un tema de permisos desde el postman, estoy haciendo esto en VS2017.
@@hdeleonnet Si hago oCliente.Nombre="Juan" Funciona perfecto desde Postman, En problema esta en que la propiedad Nombre del Objeto del ClienteRequest llega en Null
claro, si tienes permiso para borrar, envíes por body, por url o header puedes igual rastrear ese valor, que el backend te proteja. Al final vas a encontrar quienes te digan que lo envíes en el header, o en el body o en la url, y cada quien tiene su opinión, tu ve cual te conviene más dependiendo el fin al que quieres llegar.
Ayuda sensei en el post me devuelve un estado 415 {"type":"tools.ietf.org/html/rfc7231#section-6.5.13","title":"Unsupported Media Type","status":415,"traceId":"|3d456cca-4862607a96517fbc."} se lo paso el parametro por body
Si te ha gustado el video puedes apoyarme con un like y compartiéndolo en tus redes sociales, te agradeceré bastante.
Siguiente aquí: ua-cam.com/video/m_SwqJCG7hk/v-deo.html
Saludos desde Perú !!!!
Aplica para miembros de nivel1? Ósea los de $ 0.5
Todos
Pro tip : you can watch series at flixzone. Me and my gf have been using it for watching a lot of movies these days.
@Flynn Blaine Yea, been using Flixzone for years myself :D
Atajos super útiles: #1 prop + tab + tab (crea una propiedad de clase). #2 try + tab + tab (crea try catch completo). #3 ctor + tab + tab (crea un constructor de clase). Saludos
Tus videos son Excelentes, Gracias Hector.
Gracias es el mejor prof que he tenido (y no pago nada increíble)
Voy por aquí y hasta el momento excelentes videos y explicaciones concretas sin redundar ni irse de largo! 10 de 10 bro
Estás hecho un fiera, chaval. Vídeo tuyo que vea, like que te llevas para la cesta.
Mis respetos, si simplificaste la manera de explicar esto, te lo agradezco mucho.
Vamos ahi, ya estoy en el 5to video y no quiero parar de aprender, esto va bien, todo funciona.
Ya ando por aquí, excelente todos tus videos. En mi app ando usando PostgreQSL. Pero hasta aquí funciona todo
Veo tus videos desde hace poco y me has ayudado muchísimo, ahora estoy haciendo un e-commerce pero quiero hacer exactamente esto, dividir mi front del backend, en estos momentos estoy pagando mi suscripción porque quiero este curso, ya!
Felicidades Héctor, sigue así.👏🏼👏🏼
Listo, vamos a darle! 😎😎
Muy bien explicado !!!
muchas gracias, por estos videos !!
Eres un capo, te sigo ya desde un tiempo, y siempre me es grato ver tus videos por facilidad como imparte tus clases, por ejemplo éste que yo soy más de ADO y siempre tuve roces con entity, pero con esta clase el panorama me queda más claro y como poder sacar provecho de esta tecnología, te mando un gran saludo desde Perú.
Gracias Douglas!
Excelente , he visto los vídeos que públicas y la verdad que enseñas muy bien 👏👏
Muchas gracias!
Pude resolver un problema q tenía meses sin encontrar en Internet!
Más profes como tu! 👍🎉🎊
Excelente, claro , conciso y didáctico como todo debería ser
Gracias por compartir conocimientos a nivel Pro. Excelente.
Eres mi dios de la programación
♥
lol
Héctor gracias por compartir tu conocimiento, saludos
Por cierto. Eres un crack. Tremendo curso!!!!! Brillante!
Genial justo estoy haciendo un proyecto similar y me ayudan mucho tus videos gracias!!
Excelente video Héctor! Gracias x compartir tu conocimiento. Estoy aprendiendo mucho en tu canal. 👍 Espero con ansías el siguiente vídeo!! Saludos!!
Grande bro, gracias por el curso
muy buenos tus videos !!!
Gracias
excelente video amigo!
excelente video sigue asi 😁👍
Saludos desde Jutiapa, sigue así 😎
🤘
Muchas gracias por este curso, Héctor. Por qué usar:
db.Entry(oCliente).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
en vez de:
db.Update(oCliente);
Abrazo desde AR
grACIas hector
Muy bueno
Me estoy comiendo este curso cual serie de Netflix. Esta bien bue nardo.
Muy buenos tus videos, gracias por compartirlos. Solo una pequeña observación, cuando te refieres a "protocolo GET" o "protocolo POST" en realidad te estás refiriendo a métodos, el protocolo es HTTP que tiene varios métodos. Solo eso, en buena onda, para que están recien aprendiendo luego no se confundan.
Gracias por la observación, todo comentario que aporte siempre es bienvenido
Antes de ver cómo hacías el método para editar, lo hice así public IActionResult Edit(int id,[FromBody] ClienteRequest model) {
Respuesta respuesta = new Respuesta();
try
{
using (SistemaVentasContext db = new SistemaVentasContext()) {
respuesta.Data=db.Clientes.SingleOrDefault(x => x.Id==id).Nombre=model.Nombre;
db.SaveChanges();
respuesta.Exito = 1;
}
}
catch (Exception ex) {
respuesta.Mensaje = ex.Message;
}
return Ok(respuesta);
}
Quisiera saber si afecta a las buenas prácticas. Me está ayudando mucho este curso, muchas gracias
Excelente video crack
👏🏾👏🏾👏🏾
🤘
Saludos Hector, gran video tan solo tengo una pregunta, por qué pones o al principio del algunas variable por ejemplo oRespuesta ????
El sonido característico de cuánto nos conectamos a internet vía cable de teléfono jajajaj
the best
Excelente curso Hector muchas gracias, estos son mis primeros pasos con C# y está super interesante
Una consulta, cuando marco el breakpoint para debuggear no me sale ninguna consola o algo que me muestre lo que llega, estoy googleando pero increiblemente no encuentro como "mostrar" esa consola, estoy con la última versión de visual studio
Hector muchas gracias por compartir tus conocimientos me han servido de mucho, tengo una duda no se si tonta, por que creas clases en Request y no utilizas las que ya estan en Models? Gracias por tu respuesta
Buenas HdeLeon, primero que nada debo felicitarte porque todos tus videos son excelentes y muy explicativos, mil gracias he aprendido muchisimo en tu canal. Por otra parte quería preguntarte si tienes algún video donde consumes esa API que realizaste pero con solicitudes PUT y DELETE desde Windows Forms, tengo tiempo buscando y no consigo un ejemplo concreto donde se explique. Agradezco tu respuesta, saludos.
Hector, tengo una duda, si por ejemplo yo realizo una venta hoy a un cliente llamado Pedro, y luego al mes le actualizo el nombre y le pongo pedrito, no estaría cambiando el histórico de la venta? Como se debería manejar esto? Debería agregar en la venta el nombre del cliente?
Me agrada mucho tu video, también tengo un sistema de ventas pero esta hecho en windows forms, basicamente todo lo manejo en la base de datos y ese sistema lo quiero migrar a web pero tengo una pregunta. Antes de guardar una venta mantengo los datos en una tabla para dar opcion a cancelar algun producto o agregar mas pero para guardar los datos en esa tabla primero consulto si el producto existe y luego en la tabla temporal consulto si ese producto ya esta insertado y si lo esta actualizo pero si no lo esta entonces si inserto. ¿Como podria hacer esto en la API? Ya que por lo que veo se tiene que especificar el metodo por el que vas a entrar y segun como lo hago seria usar varios metodos al mismo tiempo y no termino de entender como hacerlo
Que tan bueno sería usar interfaces para la realización de los crud en vez de hacerlos directamente desde el controlador?
Buenas Hector!, una consulta, que opcion marcas para que te muestre sobre la propiedad, funcion, clase, etc la cantidad de veces que es referenciada? me parece algo super util cuando el codigo empieza a crecer
Excelente contenido!! un pregunta como agrego valores a 2 tablas relacionadas por una clave foranea mediante el model?
ua-cam.com/video/RTVHv2Rqge0/v-deo.html
@@hdeleonnet gracias sensei del código
Muchas gracias, has pensado en vez de hacerlo en SQL Server hacerlo en firebase?
haré un crud separado de estos videos con firebase
Muchas gracias por tu ayuda. Me sale el error al ejecutar el método POST, me salta a la excepción 0, ya revisé el cod y no encuentro nada raro
Comunidad, Ayuda... Como modificaría el código para la edición de mas de 3 campos?. Gracias por su apoyo.
Pregunta ❔ solo puede ser slq server
Se podría hacer con mysql igualmente es una pregunta ❔
Se puede con Mysql
Hola, muchas gracias por este video, sin embargo tengo un problema, el codigo esta igualito, pero en el postman me da ete error: " An error occurred while updating the entries. See the inner exception for details. " sin embargo al hacer un select a mi base el ID que es automatico se va generando en cada prueba que realizo. En que estoy fallando.
mirar inner exception, debuguea y en el catch ve en el atributo inner exception el error, ahí te dirá más detalles
Hola. Seria bueno la publicación de un repositorio Git del resultado de cada proyecto.
es contraproducente, ya que muchos se apegaran a eso y no aprenderán lo que se debe aprender.
me da este error en el postman "An error occurred while updating the entries. See the inner exception for details" en la función del Post. ¿Alguien sabe como solucionarlo y me ayuda? min 11:50
Hola Hector no es mejor utilizar los métodos IActionResult asíncrono? de la manera del video actual cual seria la desventaja o ventaja
Vamos caminando, muchos no saben nada de backend
@@hdeleonnet ahh esta bien, esque como lo hiciste tu y eres un crack (eh aprendido tanto de ti) y al no mencionar acerca de ello pense que de este modo sería mejor , losiento, muchos saludos
hector consulta, en la parte de editar un cliente, usaste db.Entry(oCliente).State = Microsoft.EntityFrameworkCore.EntityState.Modified, es lo mismo usar db.Update(oCliente)?
.
Una consulta la logica de negocios no debería estar en el Modelo? Osea los insertar,buscar, etc. El controlador solo debería llamar a esas funciones ya que tengo entendido que es solo el intermediario entre la vista y el modelo???
Para eso tenemos entity framework
Claro ya lo entiendo. Todas esas funciones ya son implementadas. Gracias amigo
Hola profesor, buen video, solo una pregunta.
¿Cuál es la diferencia entre usar:
* db.Remove(oCliente);
y
* db.Entry(oCliente).State = Microsoft.EntityFrameworkCore.EntityState.Deleted;?
Los probé y hacen lo mismo pero no se si abra alguna otra repercusión.
Se puede crear un TryCatch general para todos los controladores sin tener que declararlo en cada método?
Si. Con un filter de mvc. Después hago un video de esto
a mi me sale el mensaje de Exito, pero no me elimina, será posible algo este bloqueando este proceso, no se alguna configuración, ya eh verificado varias veces y tengo igual el código pero no me elimina.
¿Si usara Post para editar, estaría bien o mal?
No te recomiendo hacerlo por que puedes confundir a los devs que esperarian que sea put. Pero si puede funcionar. Solo el tema de la confusión
por q creas el clienteRequest y no usas un Cliente directamente?
La razón por la que el parámetro Id Int llegaba en 0, era porque estabas enviándolo como si fueran un JSON, y el método Delete(int id) estaba esperando un número plano.
{"Id" : 1} != int;. Tendrías que haber enviado el 1 en el body directamente.
Me corrigen si me equivoco.
Id=1
Consulta.. porque el postman no lee mis url??
hola, porque al llamar el metodo con postman o con js el response viene todo en minúsculas, cuando el objeto está declarado con mayúsculas pero en el swagger si lo regresa como lo tengo declarado , hay forma de que lo regrese tal cual lo estoy declarando?
ua-cam.com/video/A7NcQKg38h4/v-deo.html
por lo que entiendo con esos 4 metodos ya podras hacer todo tu crud sin importar cuantos parametros necesites enviar? porque yo todo novato hice mi capad de datos a mano y tenia un metodo para cada procedimiento almacenado
Si pero iremos incrementando nivel de módulos
Que es mejor usar IActionResult o IHttpActionResult hasta he visto gente q usa Task con async 😖
Mejor hago un video comparando
Hola, para borrar podrias usar....
db.Entry(cliente).State = Microsoft.EntityFrameworkCore.EntityState.Deleted;
db.SaveChanges(); ???? Saludos
te recomendaria utilizar ese modo cuando estes en transacción, ya que de otra forma no le veo mucha diferencia, saludos!
al hacer el PUT tengo el sig. error: "The key value at position 0 of the call to 'DbSet.Find' was of type 'int', which does not match the property type of 'long". Cómo puedo solucionarlo?
Manda un long en lugar de int
@@hdeleonnet gracias, pero cómo envío un long desde json? entiendo que al recibir el valor y tratar de actualizar la db tiene conflicto
mas bien es antes, un tipo de tu modelo es int, y cambialo por long
Como se podría insertar a la base una "transacción", incluyendo el id del usuario según el usuario que este logeado?
más adelante hablamos de transacciones
Hector por favor puedes subir el proyecto de forma local, en nuestra propia maquina, IIS (LOCALHOST) para no tener que compilar a cada rato?? por favor
ua-cam.com/video/iaFBQcd26HE/v-deo.html
Cual es la diferencia en hacer la actualizacion con db.Cliente.Update(oCliente); o con db.Entry(oCliente).State = Microsoft.EntityFrameworkCore.EntityState.Modified; ???
Hola Hector, Por alguna extraña razon no anda el HttpPost del Insert, El Get funciona perfecto. El mensaje de error es "An error occurred while updating the entries. See the inner exception for details." he revisado el código como 10 veces y no encuentro el error, no se si sera un tema de permisos desde el postman, estoy haciendo esto en VS2017.
El objeto del la clase ClienteRequest donde seteas ocliente.Nombre=oModel.Nombre--> Llega en Null
Tu json esta mal verifica el encode sea json
En postman esta seteado raw y JSON
@@hdeleonnet Si hago oCliente.Nombre="Juan" Funciona perfecto desde Postman, En problema esta en que la propiedad Nombre del Objeto del ClienteRequest llega en Null
Ponlo en minuscula
Pero es correcto enviar el "Id" para el borrado por medio de la URL???
claro, si tienes permiso para borrar, envíes por body, por url o header puedes igual rastrear ese valor, que el backend te proteja. Al final vas a encontrar quienes te digan que lo envíes en el header, o en el body o en la url, y cada quien tiene su opinión, tu ve cual te conviene más dependiendo el fin al que quieres llegar.
@@hdeleonnet entiendo, gracias por la respuesta. Tuve la duda porque me pareció raro mostrar el ID del registro en la URL.
Ayuda sensei en el post me devuelve un estado 415 {"type":"tools.ietf.org/html/rfc7231#section-6.5.13","title":"Unsupported Media Type","status":415,"traceId":"|3d456cca-4862607a96517fbc."}
se lo paso el parametro por body
por qué llego en null el Id???
Por que lo mande como objeto {Id=1} en lugar de Id=1
Buen contenido pero el intro es molesto