//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:
Comentarios (Atom)