Manière optimale de lier IEnumerable de la requête Dapper à ComboBox

c# dapper

Question

J'utilise Dapper comme ORM et j'ai la méthode suivante pour ma classe User:

public IEnumerable<User> GetList()
{
  using (SqlConnection sqlC = DAL.SQL.SFMConn())
  {
    string queryID = "select opID, RoleID, Password from [user]";
    return sqlC.Query<User>(queryID);
  }
}

J'utilise ensuite un BindingSource pour lier le résultat de la requête ci-dessus et utiliser ce BindingSource pour remplir un ComboBox:

Model.User user = new Model.User();
BindingSource users = new BindingSource();
users.DataSource = user.GetList();

Mon problème est que je ne pense pas que je le fais de la manière optimale. Lorsque je veux obtenir mon RoleID pour l'utilisateur actuel, je transforme mon enregistrement BindingSource actuel en Model.User:

int authLevel = ((Model.User)users.Current).RoleID;

Y a-t-il une meilleure manière de faire cela? Un moyen de le faire sans utiliser un BindingSource peut-être? Merci

Réponse populaire

Dans le cas où ValueMember et DisplayMember sont déjà réservés, à la suite d'un appel de base d'événement, peut être la solution:

users.CurrentChanged += new System.EventHandler(UsersCurrentChanged);
void UsersCurrentChanged(object sender, EventArgs e)
    {
        authLevel = (users.Current as Model.User).RoleID;
    }



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