Wie Listenwerte in linq Bedingung übereinstimmen?Wie man Listenwerte in linq Bedingung zusammenbringt?
Ich habe eine Liste von IDs, also müssen diese IDs in der Bedingung übereinstimmen und Daten von einer Tabelle sol erhalten, wie?
public ActionResult StudentSelect(
long? CompanyId,
long? CompanyLocationId,
long? ClassId,
long? SectionId,
long? AcademicId,
long? ExamId) //) //long? SectionId)
Unten RegId
ist Liste der Anmeldung des Schülers Ids
{
var RegId = (
from a in db.Student_Marks_Percentage
where a.Delete_Flag == false &&
a.Exam_Id == ExamId &&
a.Academic_Year_Id == AcademicId &&
a.Class_Id == ClassId
select a.Registration_Id)
.ToList();
List<StudentList> Student = new List<StudentList>();
if (AcademicId != null &&
CompanyId != null &&
CompanyLocationId != null &&
ClassId == null &&
SectionId == null) //&&)//&& ClassId != null) //)
{
Student = (
from a in db.Student_Re_Admission
join b in db.Student_Registration on a.Registration_Id equals b.Registration_Id
join c in db.Student_Roll_No_Assign on a.Registration_Id equals c.Registration_Id
where c.Academic_Year_Id == AcademicId &&
c.Company_ID == CompanyId &&
c.COMPANY_LOCATION_ID == CompanyLocationId &&
a.Academic_Year_Id == AcademicId &&
c.Class_Id == ClassId &&
a.Class_Id == ClassId &&
a.Section_Id == SectionId &&
c.Section_Id == SectionId &&
Hier muss ich
a.Registration_Id != RegIds &&
a.Promoted == false &&
a.Delete_Flag == false
//a.Academic_Year_Id == AcademicId &&
//a.Company_ID == CompanyId &&
//a.COMPANY_LOCATION_ID == CompanyLocationId
select new StudentList()
{
Registration_Id = a.Registration_Id,
Admission_No = a.Admission_No,
Student_First_Name = a.Student_First_Name,
Student_Middle_Name = a.Student_Middle_Name,
Student_Last_Name = a.Student_Last_Name,
Set_Roll_No = c.Set_Roll_No,
Roll_Id = c.Roll_Id
})
.OrderBy(a => a.Registration_Id)
.ToList();
ViewBag.StudentList = Student.ToList();
return PartialView();
}
}
Ich habe versucht, wie unten an a.Registration_Id alle Liste von IDs vergleichen, aber immer gleichen Daten der Schülerliste.
var merged = new List<StudentList>(Student);
merged.Except(Student.Where(p2 => RegId.Exists(p1 => p2.Registration_Id != p1.Registration_Id)));
könnten Sie erklären, was Sie als Ergebnis haben. Es ist ein wenig unklar, die Liste der IDs, über die Sie sprechen, ist es das Ergebnis der ersten (Reg) Abfrage oder der eindeutigen IDs, die Sie in den WHERE-Klauseln haben? – Thorarins
Ich möchte ein Ergebnis: Holen Sie sich Daten, in denen nicht RegistrationId von var RegId-Listen –
PLZ jetzt meine zuletzt gesehen werden soll. –