Comment voulez-vous convertir ou convertir une List
en EntityCollection
?
Parfois, cela se produit lorsque vous essayez de créer «à partir de zéro» une collection d’objects enfants (par exemple à partir d’un formulaire Web).
Impossible de convertir implicitement le type 'System.Collections.Generic.List' à 'System.Data.Objects.DataClasses.EntityCollection'
Je suppose que vous parlez de List
et de EntityCollection
utilisés par Entity Framework. Ce dernier ayant un objective complètement différent (responsable du suivi des modifications) et n’héritant pas de la List
, il n’y a pas de diffusion directe.
Vous pouvez créer un nouveau EntityCollection
et append tous les membres de la liste.
var entityCollection = new EntityCollection(); foreach (var item m in list) { entityCollection.Add(m); }
Malheureusement, EntityCollection
ne prend pas en charge une opération Assign, contrairement à EntitySet utilisé par Linq2Sql, ni à un constructeur surchargé;
En une ligne:
list.ForEach(entityCollection.Add);
Méthode d’extension:
public static EntityCollection ToEntityCollection (this List list) where T : class { EntityCollection entityCollection = new EntityCollection (); list.ForEach(entityCollection.Add); return entityCollection; }
Utilisation:
EntityCollection entityCollection = list.ToEntityCollection();
Aucun LINQ requirejs. Il suffit d’appeler le constructeur
List myList = new List (); EntityCollection myCollection = new EntityCollection(myList);