Tengo que escribir debajo de 2 declaraciones LINQ. Ambos regresan (aparentemente) el mismo conjunto de resultados. ¿Alguien puede explicarme por qué debería usar una forma versus la otra? ¿Es tan simple como "You say potato, I say potato; you say tomato, I say tomato"?LINQ, ¿DEBO UNIRSE o usar el anidado SELECCIONAR NUEVO?
Éstos son los dos sabores de LINQ ->
1) Los dos lets
a continuación han de métodos privados que tengan un ID y devuelve el nombre.
var business = from businesse in context.tblBusinesses
where businesse.BusinessID == businessID
join addresse in context.tblAddresses on businesse.BusinessID equals addresse.BusinessID
let stateName = GetStateNameByID(addresse.StateID)
let countyName = GetCountyNameByID(addresse.CountyID)
select new
{
businesse.BusinessName,
businesse.ContactName,
businesse.EmailAddress,
addresse.AddressLine1,
addresse.AddressLine2,
addresse.AddressLine3,
addresse.CityName,
State = stateName,
addresse.ZipCode,
addresse.ZipPlus,
County = countyName
};
2)
var query = from businesse in context.tblBusinesses
where businesse.BusinessID == businessID
select new
{
businesse.BusinessName,
businesse.ContactName,
businesse.EmailAddress,
Address = from addresse in businesse.tblAddresses
select new
{
addresse.AddressLine1,
addresse.AddressLine2,
addresse.AddressLine3,
addresse.CityName,
State = addresse.StateID,
addresse.ZipCode,
addresse.ZipPlus,
County = addresse.tblAdminCounty
}
};
"¿Estás seguro de que dan el mismo resultado?" - Supongo que cuando dije que quise decir que los campos tienen el mismo valor (es decir, estado = CA en ambos) tendré que pensar en ello para comprender si las propiedades hacen una diferencia en cómo los uso para mí. –