Intentando aprender Linq usando LinqPad y sintiéndose frustrado con la forma de comenzarlo. Digamos que quiero escribir una expresión C# y una declaración C# donde tengo una tabla en el servidor SQL llamada Productos y quiero extraer todas las filas donde el precio es mayor que 50. ¿Cómo lo escribiría usted?Pasos para que un principiante ejecute una consulta de linq a sql muy básica usando Linqpad
Respuesta
Digamos que quiero escribir un C# Expresión y un C# DECLARACIÓN donde tengo una tabla en SQL server llamada Products y quiero extraer todas las filas donde el precio es mayor que 50. ¿Cómo lo escribiría?
LINQPad construye el DataContext tipeado para usted automáticamente, por lo que no necesita crear una instancia de nada. En el modo de expresión C#, simplemente escriba lo siguiente:
Products.Where(p => p.Price > 50)
y presione F5. Alternativamente, es posible que prefiera utilizar una expresión de consulta:
from p in Products
where p.Price > 50
select p
En el modo C# declaraciones, tendrá que llamar al método dump() para indicarle que debe escribir los resultados. Usted también necesitará para terminar la expresión con un punto y coma:
Products.Where(p => p.Price > 50).Dump();
Hay más ejemplos en la sección de muestras LINQPad - vistazo a la inducción de 5 minutos.
var db = new MyDatabaseContext(); // Your database context.
var result = db.Products.Where(q=>q.Price > 50);
... donde db
representa su contexto ORM. Price
representa su asignación al campo Price
en la base de datos. result
representa el conjunto de resultados: sus filas/entidades de base de datos.
Proporciona "No se encontró el tipo o el nombre del espacio de nombres 'MyDatabaseContext'". Lo siento por mi ignorancia, pero soy totalmente nuevo en Linq/ORM. ¿Debo configurar algo en Linqpad? Mi impresión de que puedo usar linq en SQL al igual que uso mi SQL Management Studio y consulto directamente las tablas de la base de datos. –
. Necesita crear una asignación de base de datos. 'MyDatabaseContext' solo es un nombre ficticio para lo que sea que haya llamado su ORM. –
¿Sabes exactamente dónde puedo crear mapas en LinqPad? –
Revisa: http://msdn.microsoft.com/en-us/library/bb397933(v=vs.90).aspx que te dará una introducción a Linq y el uso de expresiones lambda.
A continuación, echar un vistazo a http://msdn.microsoft.com/en-us/library/bb386927.aspx que le dará los fundamentos, pero para responder a su pregunta específica:
var products = db.Products.Where(prod => prod.Price > 50);
foreach(var product in products)
{
//do something
}
Cuando la ejecuto como un programa C#, obtener el siguiente error "'LINQPad.User.Products' no contiene una definición para 'Precio' y no se pudo encontrar ningún método de extensión 'Precio' que acepte un primer argumento de tipo 'LINQPad.User.Products'". ¿Qué estoy haciendo mal? –
Necesita crear una asignación de base de datos. ¿Has echado un vistazo al enlace del tutorial de SQL de Linq 2 que publiqué? Eso cubre lo básico. ¿Tiene una base de datos configurada con una tabla de productos? – Maess
Sí, lo he visto pero en LinqPad la única opción que parece encontrar es Agregar conexión. Una vez que agregué la conexión a mi instancia SQL db, puedo ver todas las bases de datos/tablas, etc. en el lado izquierdo. Simplemente no sé ni veo ningún opton sobre cómo y dónde crear la asignación de la base de datos. –
sólo quería añadir - pluraliza almohadilla LINQ - Yo no sabía esto y me volvía loco por un cuarto de hora
yo estaba tratando de seleccionar de una tabla llamada DentalApplication
DentalApplication.Where(a=> a.PackageID > 0)
dio me este error
'LINQPad.User.DentalApplication' does not contain a definition for 'Where'
lo cambió a
DentalApplications.Where(a=> a.PackageID > 0)
y funcionó
Por defecto, las propiedades de asociación de elementos de pluralización de Linqpad. Consulte http://stackoverflow.com/questions/7833133/linqpad-adds-an-s-to-the-end-of-every-table – maoyang
- 1. LinqPad - Convierte comandos de SQL a Linq
- 2. Sybase, ejecute una cadena como consulta sql
- 3. Convertir consulta SQL a LINQ
- 4. consulta recursiva de linq a sql
- 5. Proceso de inserción muy lento utilizando Linq a Sql
- 6. Uso de linqpad como herramienta de consulta primaria
- 7. ¿Hay un LINQPad equivalente a una clase DataContext?
- 8. Linq a Sql cualquier consulta de búsqueda de palabra clave
- 9. String.IsNullOrEmpty in LINQ ¿A la consulta SQL?
- 10. Usando sqlfunctions en linqpad
- 11. String.Split en una consulta Linq-To SQL?
- 12. LINQ a SQL anidada en la consulta
- 13. ¿Usando XQuery en Linq a SQL?
- 14. obtener SQL generado a partir de una consulta linq compilada
- 15. Optimización una consulta LINQ to SQL
- 16. cómo programar un trabajo para que la consulta SQL se ejecute diariamente?
- 17. Consulta de LINQ a SQL donde comienza una cadenaCon un elemento de una lista genérica
- 18. En LINQPad, ¿puede acceder a SYSOBJECTS utilizando LINQ?
- 19. Cómo interceptar y modificar consulta SQL en Linq a SQL
- 20. En LINQ to SQL, ¿cómo se transfieren partes de una consulta LINQ a una función
- 21. LINQ to SQL Pregunta básica - relaciones de tabla
- 22. sp_executesql que hace que mi consulta sea muy lenta
- 23. ¿Cómo llamar a una UDF en una consulta de linq a sql?
- 24. Problema de consulta compilada de LINQ-a-SQL (funciona como una consulta no compilada)
- 25. predicados dinámicos para LINQ-a-Entidad consulta
- 26. Usando LINQ to SQL para crear una base de datos
- 27. Consulta de LINQ a SQL con "NO EN"
- 28. Plantilla básica para transacciones en SQL Server
- 29. consulta de linq a sql con múltiples donde los parámetros
- 30. Conectar LINQPad al servidor SQL remoto
Gracias @Joe. Eso es exactamente lo que estaba buscando. Por cierto, la expresión expulsada funcionaba bien, pero cuando ejecuto "desde p en Productos donde p.Precio> 50 seleccione p", la declaración me da error ";" esperado ". Añado ; al final, pero eso tampoco ayuda. ¿Algunas ideas? –
eso se debe a que ha seleccionado las Declaraciones de C#. Las declaraciones deben terminar con; pero las expresiones no pueden terminar; Me salte toda esta confusión y sigo el programa C# :) – Joe
@Joe me pueden ayudar con esta pregunta :) http://stackoverflow.com/questions/19291255/linqpad-doesnt-render-group-collection – AuthorProxy