我正在使用EF,因此我的Child集合的类型为EntityCollection< T>。如果属性“Children”是EntityCollection< T>如何转换查询结果IEnumerable< T>到EntityCollection< T>?
由于
var list = element.Elements(ns + "Parent")
.Select(parsedXml =>
Children = parsedXml.Elements(ns + "Child")
.Select(child => new Child {
Id = Convert.ToInt32(child.Attribute("id").Value)
})
});
答案 0 :(得分:2)
由于您已经在使用LINQ,因此可以通过创建扩展方法来使用相同的模型执行此操作:
public static EntityCollection<T> ToEntityCollection<T>(this IEnumerable<T> source)
{
var col = new EntityCollection<T>();
foreach (var item in source)
{
col.Add(item);
}
return col;
}
然后在原始LINQ语句中使用此方法,将.ToEntityCollection()
添加到结尾。
答案 1 :(得分:0)
没有直接施法。您需要遍历集合并添加到新的实体集合。
var eCollection = new EntityCollection<T>();
foreach (var child in list)
{
eCollection.Add(child );
}