2017-02-09 4 views
0
bool flagemployee = employee == null ? true : false; 
     bool flagcompany = company == null ? true : false; 
     bool flaglocation = location == null ? true : false; 
     bool flagdivision = division == null ? true : false; 
     bool flagdepartment = department == null ? true : false; 
     bool flagdesignation = designation == null ? true : false; 
     bool flaggrade = grade == null ? true : false; 
     bool flaggrop = grop == null ? true : false; 
     bool flagcategory = category == null ? true : false; 


     try{ 
     var obj = (from epd in dev.ENT_EMPLOYEE_PERSONAL_DTLS 
        join eod in dev.ENT_EMPLOYEE_OFFICIAL_DTLS on epd.EPD_EMPID equals eod.EOD_EMPID 
        join com in dev.ENT_COMPANY on eod.EOD_COMPANY_ID equals com.COMPANY_ID 
        join loc in dev.ENT_ORG_COMMON_ENTITIES on new { X1 = eod.EOD_LOCATION_ID, X2 = "LOC" } equals new { X1 = loc.OCE_ID, X2 = loc.CEM_ENTITY_ID } 
        join div in dev.ENT_ORG_COMMON_ENTITIES on new { X1 = eod.EOD_DIVISION_ID, X2 = "DIV" } equals new { X1 = div.OCE_ID, X2 = div.CEM_ENTITY_ID } 
        join dep in dev.ENT_ORG_COMMON_ENTITIES on new { X1 = eod.EOD_DEPARTMENT_ID, X2 = "DEP" } equals new { X1 = dep.OCE_ID, X2 = dep.CEM_ENTITY_ID } 
        join des in dev.ENT_ORG_COMMON_ENTITIES on new { X1 = eod.EOD_DESIGNATION_ID, X2 = "DES" } equals new { X1 = des.OCE_ID, X2 = des.CEM_ENTITY_ID } 
        join grd in dev.ENT_ORG_COMMON_ENTITIES on new { X1 = eod.EOD_GRADE_ID, X2 = "GRD" } equals new { X1 = grd.OCE_ID, X2 = grd.CEM_ENTITY_ID } 
        join grp in dev.ENT_ORG_COMMON_ENTITIES on new { X1 = eod.EOD_GROUP_ID, X2 = "GRP" } equals new { X1 = grp.OCE_ID, X2 = grp.CEM_ENTITY_ID } 
        join cat in dev.ENT_ORG_COMMON_ENTITIES on new { X1 = eod.EOD_CATEGORY_ID, X2 = "CAT" } equals new { X1 = cat.OCE_ID, X2 = cat.CEM_ENTITY_ID } 
        where 
        flagemployee ? 1 == 1 : employee.Contains(epd.EPD_EMPID) 
        && flagcompany == true ? 1 == 1 : company.Contains(eod.EOD_COMPANY_ID) 

jetzt sind maintaning Flagge für Mitarbeiter oder Ort, wenn Mitarbeiter null sind, dann wird es Flag true zurück, und das Ergebnis wird auch 1 == 1 gleiche gilt für Mitarbeiter sein, aber folgenden Fehler bekommen „Eine Ausnahme von Typ ‚System.NotSupportedException‘ ist in mscorlib.dll aufgetreten, wurde aber in BenutzercodeLinq und asp.net Mvc

Zusätzliche Informationen nicht behandelt: Kann nicht erstellen null konstanten Wert vom Typ ‚System.Collections.Generic.List`1 [[System.String, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089]] '. In diesem Kontext werden nur Entitätstypen, Aufzählungstypen oder primitive Typen unterstützt. "

Antwort

0

Ich glaube, Sie über diese Zeile Code fragen

(location.i ==null? 1==1 : location.Contains(eod.EOD_LOCATION_ID)) 

die als

geschrieben werden sollte
(location.i == null || location.Contains(eod.EOD_LOCATION_ID)) 

wo ||or bedeutet.