La Boîte Combo et Entity Framework

Je suis en train d'écrire une simple première application à l'aide des Winforms, C#, VS2010, et Entity Framework. En gros, j'ai une riche DB je suis dessus, j'ai déjà mis en place le cadre, suffisamment de succès pour remplir un contrôle DataGridView avec un sous-ensemble du Travail Afin de table.

Maintenant, je veux placer une zone de liste déroulante dans le formulaire ("cbProjectID") dont la valeur est ProjectID et DisplayValue est ProjectNbr. Je veux seulement mettre en place leurs projets dans la zone de liste modifiable qui sont liés à des ordres de travail, et seulement unique ProjectIDs dans ce jeu (un projet est susceptible d'avoir des dizaines d'ordres de travail....)

Je suppose que j'ai besoin de générer une liste de EF, à l'aide de LINQ. Je suis assez nouveau à LINQ, et je ne suis pas en train de comprendre...Voici mon code pour l'instant...

using System;
using CPASEntityFramework;
using System.Data.Entity;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace BrowseWorkOrders
{
    public partial class BrowseWOs : Form
    {
        public BrowseWOs()
        {
            InitializeComponent();
        }

        private void BrowseWOs_Load(object sender, EventArgs e)
        {
            var context = new CPASEntities();
            var query = context.tblWorkOrders.Where(c => c.ProjectID==8);
            tblWorkOrderBindingSource.DataSource = query.ToList();

        // Now, I want to load up the Combo Box with all the projects in the Work Order Table

        }
    }
}

J'ai été sur le net en essayant de trouver une méthode, je comprends, mais je ne suis pas. Peut-être que quelqu'un pourra m'aider. Voici ma source de données (je suppose que je ne devrais PAS utiliser tblProject, mais au lieu d'utiliser la tblProject à l'intérieur de tblWorkOrder afin d'obtenir mon sous-ensemble...)

La Boîte Combo et Entity Framework

Toute aide et/ou des conseils seraient appréciés.


Voici le code maintenant...

namespace BrowseWorkOrders
{
    public partial class BrowseWOs : Form
    {
        public BrowseWOs()
        {
            InitializeComponent();
        }

        private void BrowseWOs_Load(object sender, EventArgs e)
        {
            //Following loads up all Projects into the cbProjectID Combo Box

            var context = new CPASEntities();
            var PrID = context.qryProjectIDNbrDescs.ToList();
            cbProjectID.DataSource = PrID;
            cbProjectID.ValueMember = "ID";
            cbProjectID.DisplayMember = "ProjectNbr";
        }

        private void cbProjectID_SelectedIndexChanged(object sender, EventArgs e)
        {
            var context = new CPASEntities();
            var query = context.tblWorkOrders.Where(c => c.ProjectID == (int)cbProjectID.SelectedValue).ToList();
            tblWorkOrderBindingSource.DataSource = query;
        }
    }
}
InformationsquelleAutor JimS-CLT | 2012-09-12