LINQ检索包含DataRowState.Deleted的数据集将引发异常

目前.NET Framework 3.5 LINQ查询的一个BUG了,在对DataTable进行删除操作之后使用LINQ表达式进行查询,它会检索RowState为DataRowState.Deleted的行记录,然后抛出DataRowState.Deleted记录不可访问的异常。在MS解决这个BUG之前,编程中应注意避免出错:

1.使用LINQ查询之前调用DataSet.AcceptChanges(),移除被标记为DataRowState.Deleted的记录;

2.使用Where方法过滤:

dt.Select(a  =>  a.UserID).Where(a  =>  a.RowState  !=  DataRowState.Deleted);

你可能感兴趣的:(delete)