//Select Comun: //Lambda: var SelectLambda = db.Customers.ToList(); //Expresión: var SelectLinq = (from item in db.Customers select item).ToList(); //Where //Lambda: var WhereLambda = db.Customers.Where(c => c.Country.Trim() == "Mexico").ToList(); //Expresión: var WhereLinq = (from item in db.Customers where item.Country.Trim() == "Mexico" select item).ToList();; //Join //Expresión: var JoinLinq = (from item in db.Customers join p1 in db.Orders on item.CustomerID equals p1.CustomerID where item.Country.Trim() == "Mexico" select new { Id = item.CustomerID, OrderID = p1.OrderID }).ToList(); //Left Join //Expresión: var LeftJoinLinq = (from item in db.Customers join p1 in db.Orders on item.CustomerID equals p1.CustomerID into resultado from rta in resultado where item.Country.Trim() == "Mexico" select new { Id = item.CustomerID, OrderID = (rta != null) ? rta.OrderID : 0 }).ToList();
lunes, 22 de octubre de 2012
Unos ejemplos de LINQ
Acá hay unos pocos ejemplos de LINQ con Entity Framework y la clase Northwind
jueves, 13 de septiembre de 2012
Problema de serialización entre Entity y Jquery AJAX
Cuando utilizamos objetos muy complejos generados por EntityFramework (Con Foreign Key) y demás nos da un error de serialización.
Por Ejemplo:
Donde el modelo departamento tiene una propiedad de tipo provincia, para solucionar esto lo que debemos hacer es un Linq y seleccionar solo los campos que requerimos de la siguiente forma:
Por Ejemplo:
[HttpPost] public JsonResult ObtenerLocalidad(int id) { return Json(db.Departamentos.Where(x => x.idProvincia == id).ToList(), JsonRequestBehavior.AllowGet); }
Donde el modelo departamento tiene una propiedad de tipo provincia, para solucionar esto lo que debemos hacer es un Linq y seleccionar solo los campos que requerimos de la siguiente forma:
[HttpPost] public JsonResult ObtenerLocalidad(int id) { var records = from entity in db.Departamentos.Where(x => x.idProvincia == id) select new { Id = entity.Id, Nombre = entity.Nombre }; return Json(records, JsonRequestBehavior.AllowGet); }
miércoles, 12 de septiembre de 2012
Encriptar y Desencriptar en C#
Clase para encriptar y desencriptar cadena de texto
public class Encrypt { string key = "ABCDEFG54669525PQRSTUVWXYZabcdef852846opqrstuvwxyz"; public string EncryptKey(string cadena) { //arreglo de bytes donde guardaremos la llave byte[] keyArray; //arreglo de bytes donde guardaremos el texto //que vamos a encriptar byte[] Arreglo_a_Cifrar = UTF8Encoding.UTF8.GetBytes(cadena); //se utilizan las clases de encriptación //provistas por el Framework //Algoritmo MD5 MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider(); //se guarda la llave para que se le realice //hashing keyArray = hashmd5.ComputeHash( UTF8Encoding.UTF8.GetBytes(key)); hashmd5.Clear(); //Algoritmo 3DAS TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider(); tdes.Key = keyArray; tdes.Mode = CipherMode.ECB; tdes.Padding = PaddingMode.PKCS7; //se empieza con la transformación de la cadena ICryptoTransform cTransform = tdes.CreateEncryptor(); //arreglo de bytes donde se guarda la //cadena cifrada byte[] ArrayResultado = cTransform.TransformFinalBlock(Arreglo_a_Cifrar, 0, Arreglo_a_Cifrar.Length); tdes.Clear(); //se regresa el resultado en forma de una cadena return Convert.ToBase64String(ArrayResultado, 0, ArrayResultado.Length); } public string DecryptKey(string clave) { byte[] keyArray; //convierte el texto en una secuencia de bytes byte[] Array_a_Descifrar = Convert.FromBase64String(clave); //se llama a las clases que tienen los algoritmos //de encriptación se le aplica hashing //algoritmo MD5 MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider(); keyArray = hashmd5.ComputeHash( UTF8Encoding.UTF8.GetBytes(key)); hashmd5.Clear(); TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider(); tdes.Key = keyArray; tdes.Mode = CipherMode.ECB; tdes.Padding = PaddingMode.PKCS7; ICryptoTransform cTransform = tdes.CreateDecryptor(); byte[] resultArray = cTransform.TransformFinalBlock(Array_a_Descifrar, 0, Array_a_Descifrar.Length); tdes.Clear(); //se regresa en forma de cadena return UTF8Encoding.UTF8.GetString(resultArray); } }
Función MD5
Dejo la función para realizar el Hash MD5:
public string md5(string password) { System.Security.Cryptography.MD5 md5; md5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); Byte[] encodedBytes = md5.ComputeHash(ASCIIEncoding.Default.GetBytes(password)); return System.Text.RegularExpressions.Regex.Replace(BitConverter.ToString(encodedBytes).ToLower(), @"-", ""); }
lunes, 10 de septiembre de 2012
Tomar valor de Checkbox y Radio con Jquery
Checkbox
HTML:
Javascript:
Radio:
HTML:
Javascript:
HTML:
Javascript:
$("#chkHombre").is(‘:checked’)
Radio:
HTML:
Hombre: Mujer:
Javascript:
$("input[name='optg']:checked").val()
viernes, 24 de agosto de 2012
Como poner el Entity Framework en otro proyecto
Fuentes: EntityFrameworkOtroProyecto
Base: EntityMVC.sql
Pasos:
1- Lo primero que debemos hacer es agregar un proyecto de tipo "Class Library" a nuestra solución (Suponiendo que ya tenemos un proyecto MVC 3 creado).
2 - Luego agregamos a nuestra Class Library la siguiente referencia:
Esta sección quedaría:
Base: EntityMVC.sql
Pasos:
1- Lo primero que debemos hacer es agregar un proyecto de tipo "Class Library" a nuestra solución (Suponiendo que ya tenemos un proyecto MVC 3 creado).
2 - Luego agregamos a nuestra Class Library la siguiente referencia:
- EntityFramework.dll
3 - A nuestro proyecto MVC 3 le agregamos las siguientes referencias:
- System.Runtime.Serialization
- System.Security
4 - En el web.config de nuesto MVC 3 agregamos la siguiente linea:
Esta sección quedaría:
5 - Agregamos una referencia de proyecto desde nuestro MVC 3 hacia nuestra Class
Library.
6 - Copiamos el ConnectionString del app.config de nuestra Class Library al Web.config de nuestro proyecto MVC 3 y eliminamos el app.config.
6 - Copiamos el ConnectionString del app.config de nuestra Class Library al Web.config de nuestro proyecto MVC 3 y eliminamos el app.config.
7 - Agregamos la generación de código (Explicado en otro post) y lo trabajamos igual que como se explica en el post: EntityFramework con mvc3
sábado, 18 de agosto de 2012
Combo (Select) en cascada con Jquery y MVC 3
Aquí les traigo un ejemplo de como realizar Combos en cascada por medio de Jquery, Ajax usando MVC3.
Proyecto: CombosCascada
Base: Argentina.mdf
Combo Cascada
Proyecto: CombosCascada
Base: Argentina.mdf
Combo Cascada
lunes, 13 de agosto de 2012
Enviando mail desde C#
Para enviar un mail desde c# lo que debemos hacer es:
primero agregamos en nuestro web.config las lineas para configurar nuestro SMTP de la siguiente forma:
Luego creamos una rutina para el envio de mail, para esto debemos importar los siguientes espacios de nombres:
y la rutina para envios de mail sería la siguiente:
Con esto ya tendríamos nuestro envió de mails fácil y sencillo.
primero agregamos en nuestro web.config las lineas para configurar nuestro SMTP de la siguiente forma:
Luego creamos una rutina para el envio de mail, para esto debemos importar los siguientes espacios de nombres:
using System.Net; using System.Net.Mail; using System.Net.Mime;
y la rutina para envios de mail sería la siguiente:
public void Enviar_mail(string para, string copia, string asunto, string titulo, string mensaje, string attach) { //Creamos el mensaje MailMessage Message = new MailMessage(); //Agregamos el destinatario Message.To.Add(new MailAddress(para)); //Agregamos el asunto Message.Subject = asunto; //Le decimos que soporte HTML en el body Message.IsBodyHtml = true; //Le agregamos el body o cuerpo del mesaje Message.Body = mensaje; //Si va con copia a alguien lo agregamos if (copia != "") Message.CC.Add(new MailAddress(copia)); //Si tiene un adjunto se lo agregamos if (attach != "") { Attachment data = new Attachment(attach, MediaTypeNames.Application.Octet); Message.Attachments.Add(data); } SmtpClient client = new SmtpClient(); //Enviamos el mail (Automáticamente toma la configuración del web.config) client.Send(Message); }
Con esto ya tendríamos nuestro envió de mails fácil y sencillo.
Validar Hidden en MVC 3
Como validar Hidden en MVC 3:
Para realizar esto le tenemos que decir al validador de Jquery que no debe ignorar los tipos Hidden por defecto de la siguiente manera:
Para realizar esto le tenemos que decir al validador de Jquery que no debe ignorar los tipos Hidden por defecto de la siguiente manera:
$.validator.setDefaults({ ignore: "" })
miércoles, 25 de julio de 2012
Tutorial MVC 3
De aquí podrán bajar la versión 2.0 del curso que estoy escribiendo:
http://sdrv.ms/125DuVx
Los fuentes:
http://sdrv.ms/100pzSR
CursoMvc3
http://sdrv.ms/125DuVx
Los fuentes:
http://sdrv.ms/100pzSR
CursoMvc3
Suscribirse a:
Entradas (Atom)