I have a table called Technologys and each Technology can have one or more resolutions. What I want to do is show all the resolutions that a technology has in the same field.
Example
Tabla de tecnologias
Nombre Descripcion Resoluciones
1 prueba 140,33,32
I need to do it with linq and I have been told that the key is in a String Join or in an Agrete using two queries but I can not get it.
This is my code:
var Technology1 = (from tTechnology in Context.Technology
join tUsers in Context.Users on tTechnology.EnableBy equals tUsers.UserId into collection
from subCase in collection.DefaultIfEmpty()
join tUsers2 in Context.Users on tTechnology.LastChangeBy equals tUsers2.UserId into collection2
from subCase2 in collection2.DefaultIfEmpty()
join tUsers3 in Context.Users on tTechnology.DisableBy equals tUsers3.UserId into collection3
from subCase3 in collection3.DefaultIfEmpty()
join tResolution in Context.Resolution on tTechnology.TechnologyId equals tResolution.TechnologyId
into collection4
from subCase4 in collection4.DefaultIfEmpty()
where tTechnology.DisableDate == null
//orderby
select new
{
tTechnologyTechnologyId = tTechnology.TechnologyId,
tTechnologyName = tTechnology.Name,
tTechnologyDescription = tTechnology.Description,
tCityName = tTechnology.City.Name,
tStateName = tTechnology.City.State.Name,
tCountryName = tTechnology.City.State.Country.Name,
tResolutions = (from tR in Context.Resolution
where tR.TechnologyId == tTechnology.TechnologyId
select tR.Measure
),
tEnableBy = (subCase.Name == null ? null : subCase.Name) + "" + (subCase.FirstLastName == null ? null : subCase.FirstLastName) + " " + (subCase.SecondLastName == null ? null : subCase.SecondLastName),
tEnableDate = tTechnology.EnableDate,
tLastChangeDate = tTechnology.LastChangeDate,
tLastChangeBy = (subCase2.Name == null ? null : subCase2.Name) + " " + (subCase2.FirstLastName == null ? null : subCase2.FirstLastName) + " " + (subCase2.SecondLastName == null ? null : subCase2.SecondLastName),
tDisableDate = tTechnology.DisableDate,
tDisableBy = (subCase3.Name == null ? null : subCase3.Name) + " " + (subCase3.FirstLastName == null ? null : subCase3.FirstLastName) + " " + (subCase3.SecondLastName == null ? null : subCase3.SecondLastName),
});
var Technology = (from tTec in Technology1
select new
{
tTechnologyTechnologyId = Technology1.ToList().Select(t => t.tTechnologyTechnologyId).ToString(),
tTechnologyName = Technology1.ToList().Select(t => t.tTechnologyName).ToString(),
tTechnologyDescription = Technology1.ToList().Select(t => t.tTechnologyDescription).ToString(),
tCityName = Technology1.ToList().Select(t => t.tCityName).ToString(),
tStateName = Technology1.ToList().Select(t => t.tStateName).ToString(),
tCountryName = Technology1.ToList().Select(t => t.tCountryName).ToString(),
tResolutions = String.Join(",", tTec.tResolutions),
}
);
In the second query, what I want to do is take some values from the first one, and also, gather all the resolutions that a technology has in tResolutios.
At the end the second query, called Technology, is the one I return.
Grace.