Para extender la sintaxis de la cadena de expresión answer por Clever humana:
Si quería hacer las cosas (como filtrar o seleccionar) en los campos de ambas tablas que se unen, en cambio en solo uno de esos dos mesas - se podría crear un nuevo objeto en la expresión lambda del parámetro final para el método de Ingreso incorporación de estos dos tablas, por ejemplo:
var dealerInfo = DealerContact.Join(Dealer,
dc => dc.DealerId,
d => d.DealerId,
(dc, d) => new { DealerContact = dc, Dealer = d })
.Where(dc_d => dc_d.Dealer.FirstName == "Glenn"
&& dc_d.DealerContact.City == "Chicago")
.Select(dc_d => new {
dc_d.Dealer.DealerID,
dc_d.Dealer.FirstName,
dc_d.Dealer.LastName,
dc_d.DealerContact.City,
dc_d.DealerContact.State });
La parte interesante es la expresión lambda en la línea 4 de la citada ejemplo:
(dc, d) => new { DealerContact = dc, Dealer = d }
... donde se construye un nuevo objeto de tipo anónimo que tiene como propiedades de los registros distribuidorContacto y el distribuidor, junto con todos sus campos.
Podemos entonces 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 del objeto anónimo que creamos que tiene los registros DealerContact y Dealer como sus propiedades.
Puede encontrar [consultas SQL en LINQ] (http://www.codeducky.org/sql-queries-in-linq/#inner-join) útiles.Explica cómo convertir consultas SQL comunes, incluidas combinaciones internas, en la sintaxis de LINQ. –
Si tiene una clave externa entre las tablas, debe buscar la respuesta de Kirk Broadhurst a continuación. – Guilherme
Debe pluralizar los nombres de su tabla. Una tabla que contiene (entradas sobre) muchos distribuidores debe llamarse * distribuidores *, y no distribuidor. – ANeves