现在,我有一个有学生ID和学生姓名的数据库。
studentsCollection.Where(c => c.ID.Contains(":"));
然后,我只想带那些学生在他们的身份证上有“冒号”。而且,当我只使用where子句时,我会得到错误,例如“此视图不允许使用edititem”。 但是,当我把句子变成(下面)
时studentsCollection.Where(c => c.ID.Contains(":")).ToList();
添加ToList功能;它将能够编辑,但无法更新甚至删除。
有谁知道如何修改此错误?
如果没有足够的信息知道我在问什么,请告诉我,谢谢。
- - - - 修改 -----
以下是我选择的改变功能。
错误情况:当我只使用where子句时,我会得到“此视图不允许使用edititem” 无法更新情况:当我添加ToList功能时,我会工作;但是,我不会更新我的数据。
private void StudentsDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var selectedStudents = e.AddedItems[0] as Students;
var studentsCollection = selectedStudents.Data;
studentsCollection.AssociationChanged += ColumnsCollection_Changed;
var studentsViewSource = ((CollectionViewSource)(this.FindResource("StudentsDataViewSource")));
studentsViewSource.Source = studentsCollection.Where(c => c.ID.Contains(":")).ToList();
}
private void ColumnsCollection_Changed(object sender, System.ComponentModel.CollectionChangeEventArgs e)
{
if (e.Action == CollectionChangeAction.Remove)
{
studySystemEntities.Data.DeleteObject(e.Element as Data);
}
else if (e.Action == CollectionChangeAction.Add)
{
studySystemEntities.Data.AddObject(e.Element as Data);
}
}