Devo essere al di sotto di 2 istruzioni LINQ. Entrambi restituiscono (apparentemente) lo stesso set di risultati. Qualcuno può spiegarmi perché dovrei usare l'una contro l'altra? È semplice come "You say potato, I say potato; you say tomato, I say tomato"?LINQ, Dovrei partecipare o utilizzare nidificato SELECT NEW
Ecco i due sapori di LINQ ->
1) I due lets
qui sotto sono a metodi privati che prendono un ID e restituire il nome.
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
}
};
"Sei sicuro che danno lo stesso risultato?" - Immagino che quando ho detto che intendevo che i campi hanno lo stesso valore (es. State = CA in entrambi), dovrò pensarci su per capire se le proprietà fanno la differenza nel modo in cui le uso per me. –