【问题标题】:LINQ Select mutiply columns as data source for combobox C#LINQ 选择多列作为组合框 C# 的数据源
【发布时间】:2015-07-04 05:14:07
【问题描述】:

我有一个组合框,其中必须包含来自(客户表)拥有房地产(房地产表)的客户列表。两个表都包含 ClientID 字段。我想从 Estate 表中获取 ClientID 作为 ValueMember,从 Client 表中获取 Client Name 作为组合框的 DisplayMember,如下所示:

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

我有一个只给我 ClientName 的查询:

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

如何从一个查询中获取 ClientID 和 ClientName 作为 Combobox 的来源。

【问题讨论】:

  • 在查询结束时将“select own.ClientName”更改为“select own”。

标签: c# winforms linq entity-framework combobox


【解决方案1】:

变化:

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

收件人:

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

【讨论】:

    【解决方案2】:

    使用匿名类型:

     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
                });
    

    你可以这样使用:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-09
      • 1970-01-01
      • 2016-06-13
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多