none
Como formar una función para verificar el la existencia del ID con LINQ. RRS feed

  • Pregunta

  • Holas,

    Necesito hacer una función que esta en adonet, pero deseo hacerlo con LINQ, alguien tiene alguna idea de como convertir en el modelo y llamarlo en el controlador, aqui les dejo la función pero en ADONET.

    Gracias por su ayuda.

    función en el modelo

    private static bool Exists(int Id)
    {
        string sql = @"SELECT COUNT(*)
                          FROM Contacto
                          WHERE IdContacto = @Id";
     
     
        using (OleDbConnection conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["default"].ToString()))
        {
     
            OleDbCommand command = new OleDbCommand(sql, conn);
            command.Parameters.AddWithValue("Id", Id);
     
            conn.Open();
     
            int count = Convert.ToInt32(command.ExecuteScalar());
     
            if (count == 0)
                return false;
            else
                return true;
             
        }
    }

    martes, 24 de enero de 2017 16:20

Todas las respuestas

  • hola

    cuando dices hacerlo con linq es porque usas entity framework?

    porque el linq seria

    private static bool Exists(int Id)
    {
        using (var context = new NombreDbContext())
        {
    	return context.Any(x=> x.IdContacto == Id);
        }
    }

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 24 de enero de 2017 17:00
  • Si, pero tambien eh visto que puede hacer pura consulta linq o linq con entity framework.
    martes, 24 de enero de 2017 17:17
  • Leandro, no usas ningun Count(*) , porque?.. y como lo llamas al controlador sino es mucha molestia, poque se supone con el count me botara 1 o 0 , si es 1 =>hara algo y si es 0 tambien, gracias.
    martes, 24 de enero de 2017 17:19
  • hola

    >>no usas ningun Count(*) , porque?

    porque el Any() devuelve un bool indicando si hay o no registro, seria el if que realizas al final en ti codigo con ado.net

    >>como lo llamas al controlador

    public class xxController{
    
       public ActionResult xxAction(xxModel model){
    
          if(xxClassDAL.Exists(model.Id)){
    
             //codigo
    
         }
    
       }
    
    }

    entiendo esa clase la defines en una libreria de acceso a datos

    >>eh visto que puede hacer pura consulta linq o linq con entity framework.

    deberias usar linq con entity framework, para que el linq se convierta a sql y ejecute la consulta a la db

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    martes, 24 de enero de 2017 17:31
  • Gracias, Leandro, ahorita mismo revisare.
    martes, 24 de enero de 2017 17:49