2 Stimmen

Ich kann mir keine Abfrage vorstellen, die dieses Problem lösen kann.

Ich habe eine komplexe Situation.
Ich habe EF mit "Model first" erstellt und hier sind meine EF-Entitäten:

-Course Lecturer many to many relationship-

Course Lecturer
------------ ------------------- _Column IS_PROFESOR is bool
+ID +ID value that makes Lecturer: +NAME +FIRSTNAME true: Course Profesor ----------- +LASTNAME false: Course Asistent -LECTURERS +IS_PROFESOR


                  -COURSES_ 
              -------------------  

Jetzt -LECTURERS y -COURSES sind Navigationseigenschaften. Von diesen Tabellen in der Datenbank muss ich Daten abfragen und sie in einige Modell so kann ich folgendes erhalten Kursindex-Ansicht

\---------------------------------------------------------------------------------
    **Course**     |   **Professor**      |    **Assistants**     |          **Actions**
---------------------------------------------------------------------------------
    course 1   | course professor |assistant 1      |     edit update delete
               |                  |assistant 2      |     edit update delete
---------------------------------------------------------------------------------
    course 2   | course professor |assistant 1      |     edit update delete
---------------------------------------------------------------------------------
    course 3   | course professor |assistant 1      |     edit update delete
               |                  |assistant 2      |     edit update delete
               |                  |assistant 3      |     edit update delete
---------------------------------------------------------------------------------

Wie Sie sehen können, brauche ich Abfrage, die einige neue View Model in der Art und Weise, dass es unterscheiden kann populate wird Kurs Professor de Kurs-Assistenten Liste. Modell wird sein (richtig?):

public class CourseView { public int CourseID { get; set; } public string CourseName { get; set; } public string ProfessorName { get; set; } public List AssistantNames { get; set; } // _Or it should be List of Assistants_ }

Keine Möglichkeit, ich kann denken, einige rationale Lösung für dieses Problem mit meinen eigenen Fähigkeiten, jede Hilfe, Referenz oder Vorschlag wird eine Menge für mich bedeuten, thx für jede Sekunde der Blick auf diese.

1voto

juharr Punkte 31014

Vielleicht sollten Sie Ihre EF-Entitäten überarbeiten. Im Moment sagen Sie, dass jeder Kurs mehrere Dozenten hat und ein Dozent entweder ein Professor oder ein Assistent ist. Ihre Kursindexansicht scheint jedoch darauf hinzuweisen, dass jeder Kurs einen Professor und mehrere Assistenten haben sollte. Sie geben auch an, dass ein Dozent nur ein Professor oder ein Assistent sein kann. Ich würde zuerst sicherstellen, dass ein Professor eines Kurses nicht der Assistent eines anderen sein kann. Wenn das der Fall ist, würde ich eine separate Tabelle (oder Entität) für Professoren und Assistenten erstellen. Jeder Kurs sollte einen Professor und mehrere Assistenten haben. Wenn andererseits Professoren Assistenten sein können, müssen Sie die Bezeichnung Professor aus dem Dozenten entfernen und sie in die Beziehung zu den Kursen einbauen, indem jeder Kurs einen Dozenten hat, der der Professor ist, und eine Liste von Dozenten, die die Assistenten sind.

Wenn Sie jedoch mit Ihrer derzeitigen Einrichtung fortfahren möchten, sollten Sie in der Lage sein, die gewünschte Ansicht mit etwas wie diesem zu füllen

var courseViews = from c in db.Courses
                  select new CourseView()
                  {
                      CourseID = c.ID,
                      ProfessorName = (from l in c.Leturers 
                                       where l.Is_Professor 
                                       select l.Name).FirstOrDefault(),
                      AssistantNames = (from l in c.Leturers 
                                        where !l.Is_Professor 
                                        select l.Name).ToList()
                  };

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X