0
나는 다음과 같은 수업을
에 가입 :여러 JLeft 외부는 LINQ
public class ItemGroupParameterBase : Master
{
public string Name { get; set; }
public int GroupID { get; set; }
}
public class ItemBase : Master
{
public string Name { get; set; }
public int GroupID { get; set; }
}
public class ItemParameter : Master
{
public int ItemID { get; set; }
public int GroupDetailID { get; set; }
public string Value { get; set; }
}
마스터 클래스는 공통의 ID가 있습니다. 항목 매개 변수의 ItemGroupParameterBase 및 Value에서 모든 그룹 매개 변수 이름을 표시해야합니다. 결과는 콤보 상자에서 선택한 항목을 기반으로합니다. 값을 찾을 수없는 경우에도 그룹 매개 변수 이름을 표시해야합니다. 나는 아래와 같이 시도했다.
var source = from itemGroupParameters in _job.ItemGroupParameterList
join items in _job.ItemList.Where(x => x.ID == Convert.ToInt32(cmbItem.SelectedValue)) on itemGroupParameters.GroupID equals items.GroupID into g1
from featureNames in g1.DefaultIfEmpty()
join itemParameters in _job.ItemParameterList.Where(x => x.ItemID == Convert.ToInt32(cmbItem.SelectedValue)) on featureNames.ID equals itemParameters.GroupDetailID into g2
from itemSubParameters in g2
select new
{
FeatureName = featureNames.Name,
Value = (itemSubParameters != null ? itemSubParameters.Value : String.Empty)
};
null 참조를 나타냅니다.
예외의 세부 정보에 다른 세부 정보가 있습니까? linq 문에 중단 점을 배치하고'cmbItem.SelectedValue'가 null인지 확인하십시오. –
아니요 색인을 검사 한 다음 데이터 만 채 웁니다. 내가 왼쪽 외부 파트를 작업하는 마지막 조인 파트를 제거하면 문제가 발생합니다. 세 번째 줄이 쿼리에서 삭제되면 작동하지만 itemparameters에서도 데이터를 사용할 수있는 경우에만 데이터를 제공합니다. – Akhil