La liaison datagridview avec les données de requête LINQ

voix
0

Je voudrais présenter mes excuses à l'avance si ma question a été répondu avant (également le problème est probablement assez basique aussi). Je suis assez nouveau à la programmation et il y a une bonne chance que je ne parviens pas à Google pour trouver des réponses puisque je n'ai même pas une bonne compréhension de ce que le problème est vraiment.

Je suis en train de lier datagridview avec les données de requête à des entités (LINQ utilisant Entity Framework).

J'utilise ce code pour y parvenir:

DatabaseModelContainer context = new DatabaseModelContainer();
private void FormDocumentUpdateWT_Load(object sender, EventArgs e)
{
        context.Configuration.ProxyCreationEnabled = false;
        context.DocumentDetailsSet.Load();
        this.documentDetailsBindingSource.DataSource = (from x in context.DocumentDetailsSet.Local
                                                        where x.DocumentHeaderId == currentDocument.Id
                                                        select new 
                                                        {

                                                          x.Inventory.Number,
                                                          x.Amount,
                                                          x.Containers.Name,
                                                          x.Separate,
                                                          x.Kanban

                                                        }).ToList();
        dataGridViewItems.DataSource = documentDetailsBindingSource;
        dataGridViewItems.Update();
        dataGridViewItems.Refresh();
}

Malheureusement, cela ne me donne pas des résultats (datagridview ne montre rien), eventhough la requête ne renvoie les données.

Quand je change le code comme ci-dessous, datagridview fait des mises à jour, mais (évidemment) Je ne suis pas obtenir les propriétés spécifiques de mon désir affiché.

 DatabaseModelContainer context = new DatabaseModelContainer();

 private void FormDocumentUpdateWT_Load(object sender, EventArgs e)
    {
        context.Configuration.ProxyCreationEnabled = false;
        context.DocumentDetailsSet.Load();
        this.documentDetailsBindingSource.DataSource = (from x in context.DocumentDetailsSet.Local
                                                        where x.DocumentHeaderId == currentDocument.Id
                                                        select new                                   {
                                                           x.Inventory, //this is changed
                                                           x.Amount,
                                                           x.Containers, // also changed
                                                           x.Separate,
                                                           x.Kanban

                                                        }).ToList();
        dataGridViewItems.DataSource = documentDetailsBindingSource;
        dataGridViewItems.Update();
        dataGridViewItems.Refresh();
    }

Quelqu'un peut-il me expliquer comment cela fonctionne et comment contourner cela? Merci d'avance!

Créé 19/09/2018 à 13:20
source utilisateur
Dans d'autres langues...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more