작동하지 않음에 LINQ 쿼리 후 나는 SQL 서버 exectution에서 생성되는 데이터 테이블에서 실행되는 C#에서 LINQ 쿼리가 : 그 후foreach는 데이터 테이블이
DataTable dtSubjects = db.ExecuteDataTable();
var subjectsWithoutParent = from row in dtSubjects.AsEnumerable()
where row["ParentID"] != DBNull.Value && row.Field<int>("ParentID") == 0
select row;
를 각각 실행해야합니다 foreach는있다 DataRow가 LINQ에서 반환되었습니다. 그러나 foeach 코드는 실행되지 않습니다.
foreach (DataRow rowSubject in subjectsWithoutParent)
{
rowSubject["ParentID"] = DBNull.Value;
}
DataTable에 그것에 행을 가지고 있으며, 지금까지 내가 말할 수있는 subjectsWithoutParent는 LINQ에서 적어도 하나 개의 행을 가져옵니다.
아이디어가 있으십니까?
'실행되지 않음'이란 무엇입니까? ... 컴파일되지 않습니까, 예외가 생깁니 까 ... ?? 'subjectsWithoutParent' 시퀀스에 항목이 포함되어 있는지 확인 하시겠습니까? ** 및 **, 그리고 내가 말할 수있는만큼 subjectsLithoutParent는 LINQ에서 적어도 하나의 행을 가져옵니다. - 그냥'.Any()'를 사용하여 이것을 검증하십시오! –
분명히해야합니다. 코드가 컴파일되지만 컴파일러는 foreach에 "들어갈 수 없으므로"subjectsWithoutParent에 행이 없다고 생각하지만 실행되지 않는 루프를 호출합니다. – jbkkd
** 컴파일러는 생각하지 않습니다 ** (sic) 시퀀스의 항목에 대한 단서가 없다. 단지'.Any()'-call을 사용하여 명확히하라. –