Estoy escribiendo una instrucción LINQ to SQL, y busco la sintaxis estándar para una unión interna normal con una ON
cláusula en C #.
¿Cómo representa lo siguiente en LINQ to SQL:
select DealerContact.*
from Dealer
inner join DealerContact on Dealer.DealerID = DealerContact.DealerID
Respuestas:
Va algo como:
Sería bueno tener nombres y campos sensibles para sus tablas para un mejor ejemplo. :)
Actualizar
Creo que para su consulta esto podría ser más apropiado:
Como está buscando los contactos, no los distribuidores.
fuente
from c or from t1
Y porque prefiero la sintaxis de la cadena de expresión, así es como lo haces con eso:
fuente
Para extender la respuesta de sintaxis de la cadena de expresión de Clever Human:
Si desea hacer cosas (como filtrar o seleccionar) en los campos de ambas tablas que se unen, en lugar de solo en una de esas dos tablas, puede crear un nuevo objeto en la expresión lambda del parámetro final para el método Join incorporando ambas tablas, por ejemplo:
La parte interesante es la expresión lambda en la línea 4 de ese ejemplo:
... donde construimos un nuevo objeto de tipo anónimo que tiene como propiedades los registros DealerContact y Dealer, junto con todos sus campos.
Luego podemos usar campos de esos registros a medida que filtramos y seleccionamos los resultados, como lo demuestra el resto del ejemplo, que usa
dc_d
como nombre para el objeto anónimo que construimos que tiene los registros DealerContact y Dealer como sus propiedades.fuente
fuente
ContactStatus
es realmente una enumeración, yc.StatusID
no es realmente una identificación, sino el valor numérico de la enumeración. Si estoy en lo cierto, en(ContactStatus)c.StatusID
realidad solo está lanzando un número entero a una enumeración.Utilice el operador Linq Join :
fuente
Crea una clave externa y LINQ-to-SQL crea propiedades de navegación para usted. Cada uno
Dealer
tendrá una colección de laDealerContacts
que puede seleccionar, filtrar y manipular.o
Si no está utilizando las propiedades de navegación, se está perdiendo uno de los principales beneficios de LINQ-to-SQL: la parte que asigna el gráfico del objeto.
fuente
Básicamente, el operador de unión LINQ no proporciona ningún beneficio para SQL. Es decir, la siguiente consulta
resultará en INNER JOIN en SQL
join es útil para IEnumerable <> porque es más eficiente:
la cláusula se volvería a ejecutar para cada distribuidor. Pero para IQueryable <> no es el caso. También unirse es menos flexible.
fuente
En realidad, a menudo es mejor no unirse, en linq, eso es. Cuando hay propiedades de navegación, una forma muy sucinta de escribir su declaración linq es:
Se traduce en una cláusula where:
fuente
SelectMany()
.Utilice las uniones LINQ para realizar la unión interna.
fuente
Prueba esto :
fuente
fuente
Donde las tablas de alumnos y cursos tienen una clave principal y una relación de clave externa
fuente
intente esto,
fuente
fuente
fuente
Escriba los nombres de tabla que desee e inicialice la selección para obtener el resultado de los campos.
fuente
Interior unir dos tablas en linq C #
fuente
desde d1 en DealerContrac, únase a d2 en DealerContrac en d1.dealearid es igual a d2.dealerid seleccione nuevo {dealercontract. *}
fuente
Un mejor ejemplo
Nombres de tabla:
TBL_Emp
yTBL_Dep
fuente