2013-01-07 159 views
1

如何刪除實體集合中的項目?刪除實體集合中的項目

例如:

我有兩個是彼此相關的

員工和參考

**Table: Employee** 

EmployeeId(PK) 

**Table: Reference** 

ReferenceId(PK) 
EmployeeId(FK) 
Name 

首先我初始化這個實體:

Employee empCol = new Employee(); 
Reference refs = new Reference(); 

,然後我保存Entity Collection中的一些數據

refs.Name = "Sample"; 
empCol.References.Add(refs); 

refs.Name = "Sample2"; 
empCol.References.Add(refs); 

我想刪除集合中的第二個元素,我該怎麼做?

[0]= {Name = "Sample"} 
[1]= {Name = "Sample2"} 

我嘗試這種代碼,但它不能正常工作,該代碼不會在我的實體集合去除第二元素,但它不產生錯誤:

empCol.References.ToList().RemoveAt(1); 
+0

有任何這類保存到數據庫中的任意點刪除集合中的對象?很難理解你的問題。 – IronMan84

+0

不,我不會將它保存到數據庫中,我首先需要將數據保存到實體集合我正在考慮這種情況:如果用戶希望在保存到數據庫之前刪除他輸入的數據,該怎麼辦。 –

回答

4

不要承擔怎樣indexcollection維持在內部。找對象first,然後從collection

var ref = empCol.References.FirstOrDefault(r=> r.Name == "Sample"); 
if (ref != null) 
    empCol.References.Remove(ref); 

如果您想通過index刪除,先找到該索引remove它。

+0

謝謝你,它的工作! –

+0

如果ref爲空,則會在第一行中引發異常。改爲使用FirstOrDefault。另外,對於字符串變量,最好使用String.Equals而不是== – IronMan84

+0

@IronMan,更新。 – Tilak

1

我試着按照它的收藏index和它的工作

var refs = empCols.References.ElementAt(1); 
empCols.References.Remove(refs);