Une requête Dapper peut-elle être modifiée en ObservableCollection?

asp.net-mvc-4 dapper

Question

Je suis en train d'apprendre à utiliser Dapper.

J'ai cette classe ici:

public class Member_Collection : ObservableCollection<Member>
{
}

et j'ai cette méthode dans ma classe DAL:

    public static Member_Collection SqlSelectAll(string connString)
    {
        Member_Collection  entityToReturn = null;

        using (var conn = new SqlConnection(connString))
        {
            var entityList = conn.Query("Select * From Member");

            entityToReturn = new Member_Collection();

            foreach (var item in entityList)
            {
                entityToReturn.Add(item);
            }
        }

        return entityToReturn;
    }

Ceci est là pour que la requête retourne un ObservableCollection?

Réponse acceptée

Le faire pour "retourner" un type de collection spécifique serait un cas d'ajout d'une méthode d'extension personnalisée. Si vous vouliez simplement le type de collection observable générique, alors:

public static ObservableCollection<T> ToObservable<T>(
    this IEnumerable<T> source)
{
    return new ObservableCollection<T>(source);
}

Notez que retourner une sous-classe spécifique est plus compliqué. Utiliser des génériques nécessiterait que l'appelant spécifie les deux arguments génériques, ce qui est frustrant. Vous pourriez avoir besoin d'une méthode d'extension de type par élément - encore une fois, plutôt moche




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi