2016-07-19 4 views
-1

기본 또는 디럭스 중 어떤 계층의 데이터를 출력 할지를 설정/해제 할 수있는 유연한 프로젝트를 작성하려고합니다. 데이터 및 헤더 (Company, URL, Country)에 대한 기본 패키지를 출력하는 Linq 쿼리가 있습니다. 데이터의 고급 패키지 (주소, 매출 범위, CompanyAge 등)도 갖고 있다고 가정 해 보겠습니다. 내 최종 목표는 SQL 테이블의 IsDeluxe 필드가 참인 경우 디럭스 헤더를 추가하고 디럭스 데이터를 기본 필드 외에도 출력하도록 토글을 구현하는 것입니다. 지금까지 내가 좋아하는 뭔가가 있습니다 그러나LINQ의 조건부 IF 문

var dataPackage = from c in db.company select new { c }; 

if(IsClientDeluxe == true) 
    { 
    HeaderRow.Add(String.Format("{0}", "Address")); 
    HeaderRow.Add(String.Format("{0}", "Revenue Range")); 
    HeaderRow.Add(String.Format("{0}", "Company Age")); 
    } 

var results = dataPackage.ToList() 

을 내 조건 내 SQL 열을 인식하지 못합니다 내가 어떻게 적절한 행에 데이터를 기록하는 아무 생각이없는 경우. 어떤 도움을 주셔서 감사합니다, 미리 감사드립니다!

+0

당신이 어떤 열을 시도하고 있음을 표현 db.company에서 액세스 하시겠습니까? – konkked

+0

IsClientDeluxe == true 인 경우 데이터 (회사, URL, 국가)의 기본 계층에 대한 처음 3 개, 고급 계층 (주소, 범위, 회사 연령)에서 다음 3 개 –

답변

0

모든 것이 유효한 추가 헤더를 포함하는 요소라고 생각할 수 있습니까?

var dataPackage = from c in db.company select new { 
       c.IsDeluxe, 
       c.Address, 
       c.RevenueRange, 
       c.CompanyAge }; 


var actualItems = new List<SomeObject>(); 

foreach(var item in dataPackage) 
{ 
    var addingItem = new SomeObject(); 

    if(item.IsDeluxe) 
    { 
     //Initialize some object one way 
    } 
    else 
    { 
     //Initialize some object another way 
    } 

    actualItems.Add(adding); 

} 

단지 당신을 위해 데이터를 얻을 수의 LINQ-SQL로를 사용하는 더 쉽게 할 수 있으며, 더 많은 참여 의사 결정을해야 할 때 일반 C#으로