Combo-Box und Entity Framework

Schreibe ich eine erste einfache app mit Winforms, C#, VS2010, und Entity Framework. Im Grunde genommen habe ich ein reichhaltiges DB ich bin zu Tippen, und ich habe bereits den Rahmen, erfolgreich genug, um füllen Sie ein DataGridView-Steuerelement mit einer Teilmenge der Arbeit Order-Tabelle.

Jetzt, ich möchten, setzen Sie ein Kombinationsfeld auf das Formular ("cbProjectID"), deren Wert ProjectID und DisplayValue ist ProjectNbr. Ich will nur um Projekte in der Liste des Kombinationsfelds, die verwandt sind, um Arbeitsaufträge, und nur einzigartige ProjectIDs innerhalb dieses Satzes (ein Projekt, das möglicherweise Dutzende von Arbeitsaufträgen....)

Ich nehme an, ich muss eine Liste erstellen von EF, unter Verwendung von LINQ. Ich bin ziemlich neu bei LINQ, und ich bin nicht es herauszufinden...Hier ist mein code bisher...

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

        }
    }
}

Ich habe durch das Netz versucht, eine Methode zu finden, die ich verstehe, aber ich versage. Vielleicht kann mir jemand helfen. Hier ist meine Datenquelle (ich nehme an, ich sollte NICHT verwenden, tblProject, sondern stattdessen die tblProject innen tblWorkOrder um mein Teilmenge...)

Combo-Box und Entity Framework

Jede Hilfe und/oder Beratung würde geschätzt werden.


Hier ist der code jetzt...

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;
        }
    }
}
Ich fand den Fehler, den ich in diesem forum thread: [Stack-Overflow-Link][1] [1]: stackoverflow.com/questions/4992129/...

InformationsquelleAutor JimS-CLT | 2012-09-12

Schreibe einen Kommentar