qr11
qr11

Reputation: 441

LINQ Select mutiply columns as data source for combobox C#

I have a combobox that must contain list of clients from(Client table) that own estate(Estate table). Both tables contains ClientID fields. I want to get ClientID from Estate table as a ValueMember and Client Name from Client table as a DisplayMember of combobox like this:

        ClientComboBox.DataSource = ownerQuery;
        ClientComboBox.DisplayMember = "ClientName";
        ClientComboBox.ValueMember = "ClientID";

I have a query that gives me only ClientName:

 var ownerQuery = (from own in AgencyContext.Client
            join clName in AgencyContext.Estate on own.ClientID equals clName.ClientID
            select own.ClientName);

How can I get ClientID and ClientName form one query as source for Combobox.

Upvotes: 0

Views: 486

Answers (2)

Nick Patsaris
Nick Patsaris

Reputation: 2218

With an anonymous type:

 var qry = (from client in AgencyContext.Client
            join estate in AgencyContext.Estate on client.ClientID equals estate.ClientID
            select new 
            {
                ClientId = estate.ClientId,
                ClientName = client.ClientName
            });

which you can use like so:

    ClientComboBox.DataSource = qry;
    ClientComboBox.DisplayMember = qry.First().ClientName;
    ClientComboBox.ValueMember = qry.First().ClientId;

Upvotes: 1

James Shaw
James Shaw

Reputation: 839

Change:

var ownerQuery = (from own in AgencyContext.Client
            join clName in AgencyContext.Estate on own.ClientID equals clName.ClientID
            select own.ClientName);

To:

var ownerQuery = (from own in AgencyContext.Client
            join clName in AgencyContext.Estate on own.ClientID equals clName.ClientID
            select own);

Upvotes: 1

Related Questions