convertir ou convertir une liste en EntityCollection

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