1

如何删除实体集合中的项目?

前任:

我有两个相互关联的实体

员工和参考

**Table: Employee**

EmployeeId(PK) 

**Table: Reference**

ReferenceId(PK)
EmployeeId(FK)
Name

首先我初始化这个:

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

然后我在实体集合中保存一些数据

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);
4

3 回答 3

5

不要假设index内部是如何维护的collection。找到对象first,然后removecollection

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

如果要删除 by index,请先找到该索引。

于 2013-01-07T03:35:47.927 回答
1

我尝试根据集合中的对象删除集合中的对象index并且它可以工作

var refs = empCols.References.ElementAt(1);
empCols.References.Remove(refs);
于 2013-01-09T01:03:06.577 回答
0

例如,如果使用 toList() 将 EntityCollection 转换为 List,则可以使用所有 List 方法删除项目

 List<RotateArticle> articles = RotateArticle.GetDataByCategoryId(sm,currentArticle.MainCategory.Key).ToList();

进而

articles.Remove(articles[i]);

或者

articles.RemoveRange(2, articles.Count - 1);
于 2018-12-05T16:40:38.697 回答