2011-02-18 14 views
18
public class CourseDetail 
    { 
     public CourseDetail(); 
     public string CourseId { get; set; } 
     public string CourseDescription { get; set; } 
     public long CourseSer { get; set; } 
    } 

public class RefUIDByCourse 
    { 
     public long CourseSer { get; set; } 
     public double DeliveredDose{ get; set; } 
     public double PlannedDose{ get; set; } 
     public string RefUID { get; set; } 
    } 
public class RefData 
    { 
     public double DailyDoseLimit { get; set; } 
     public string RefName { get; set; } 
     public string RefUID { get; set; } 
     public double SessionDoseLimit { get; set; } 
    } 

public class CourseSummary 
    {  
      public long CourseSer { get; set; } 
      public double DeliveredDose{ get; set; } 
      public double PlannedDose{ get; set; } 
      Public List<RefData> lstRefData {get;set;} 
    } 

Por un courseSer no puede haber RefUID múltiple en RefUIDByCourse y para cada RefUID habrá un registro en REFDATALambda de expresión para unirse a

tengo lista de CourseDetail, RefUIDByCourse y REFDATA ahora para el cursos existen en coursedetail tengo que crear una lista de CourseSummary.

Una cosa que puedo hacer es hacer para el bucle de coursedetail y buscar los refdatos respectivos usando la consulta de linq y crear un objeto de resumen de cursos y agregarlo en la lista.

pero ¿hay alguna manera de hacerlo mediante una consulta LINQ en vez de hacer recorrer

+5

Por favor, publique el código que ha escrito hasta ahora. En general, a la gente no le gusta escribir tu código por ti. Tal como es, esta es una descripción del trabajo, no una pregunta. –

+0

perdón mitch debido a la política de la compañía no puedo proporcionar el código ... pero trataría de replicar el mismo con algún ejemplo diferente y publicarlo. – Radhi

+0

@Radhi: ohhh ... resuma su problema en algún código falso y luego péguelo. –

Respuesta

35

La lambda de una combinación es un poco involucrados - aquí está un ejemplo sencillo:

List<Person> People = new List<Person>(); 
List<PersonType> PeopleTypes = new List<PersonType>(); 

var joined = People.Join(PeopleTypes, 
    PeopleKey => PeopleKey.PersonType, 
    PeopleTypesKey => PeopleTypesKey.TypeID, 
    (Person, PersoneType) => new 
    { 
     Name = Person.Name, 
     TypeID = PersoneType.TypeID 
    }); 

por lo general encontramos la sintaxis de consulta mucho más legible que lambdas para la unión

 var joined2 = from p in People 
         join pType in PeopleTypes 
         on p.PersonType equals pType.TypeID 
         where p.Name.StartsWith("whatever") 
         select new { Name = p.Name, TypeID = pType.TypeID }; 
+0

aquí tipo de personas puede ser múltiple para una persona ... – Radhi

+0

y quiero un resultado final como una colección de personas que contenga una lista de tipos de personas asociadas ... así que creo que mi situación es diferente a la consulta que escribiste ... o en caso contrario, avíseme si me falta algo – Radhi

+0

¿Por qué dice eso? Creo que Person tiene una propiedad PersonType, que coincide con una y solo una PersonType.TypeID. Si se tratara de un esquema de base de datos, PersonType.TypeID sería PK. ¿Me estoy perdiendo de algo? –

Cuestiones relacionadas