Concatenación del contenido de una tabla y un proyecto unidos en un modelo de vista en LINQ to SQL

Estoy buscando concatenar el contenido de una tabla unida y proyectar en un modelo de vista usando LINQ to SQL y C#.

Mi pseudocódigo es el siguiente:

 return (from t1 in db.Opportunities
                    from t2 in db.Leads.Where(x => x.Lead_ID == t1.Lead_ID)
                    from t3 in db.LeadAddresses.Where(x => x.Lead_ID == t2.Lead_ID).DefaultIfEmpty()
                    from t4 in db.Addresses.Where(x => x.Address_ID == t3.Address_ID).DefaultIfEmpty()
                    orderby (t1.Created) descending
                    select new FieldSalesPipelineViewModel
                    {
                        Id = t1.Opportunity_ID,
                        CompanyName = t2.Company_Name,
                        OpportunityTitle = t1.Opportunity_Title,
                        CompanyCity = ??????????
                    }).Take(howMany);

Un cliente potencial puede tener muchas direcciones, pero solo quiero devolver un resultado de ciudad en mi salida, una lista separada por comas de único ciudades desde Direcciones (t4.City)

Cualquier consejo sobre cómo abordar esto sería muy apreciado.

preguntado el 03 de mayo de 12 a las 17:05

1 Respuestas

¿Está buscando unir varias ciudades desde t4 en una sola cadena y poner eso en CompanyCity? Si es así, esto debería hacer el truco:

CompanyCity = string.Join(",", t4.Cities)

contestado el 03 de mayo de 12 a las 17:05

Genial. ¿Producirá esto un resultado por Oportunidad o necesito hacer algo de magia de agrupación? - Nick

@Nick, creo que necesitaría ver las tablas/objetos a los que te estás uniendo para responder eso con seguridad. Agregar esto mantendrá el recuento de registros igual que si ejecutara la consulta publicada anteriormente con el CompanyCity = ??? línea comentada. - gorico

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.