【问题标题】:Concatenate two properties in EF to populate a ComboBox [closed]连接 EF 中的两个属性以填充 ComboBox [关闭]
【发布时间】:2014-12-11 00:39:59
【问题描述】:

我正在使用实体框架、C# 和 .NET 4.5 开发一个新的 WinForms 项目。在我的数据库中,我有一个表'Teacher',其中包含两列'FirstName'和'LastName'。如何使用这两个属性生成的值填充 ComboBox 控件?

场景:

private List<Teacher> ShowTeacher(String teacherID) 
{
   List<Teacher> teachers = (from teacher in context.Teacher 
                            select teacher).Where(t => t.UserID == teacherID).ToList();
   return teachers;  
}

还有ComboBox中的代码sn-p:

cmbTeacher.DataSource = ShowTeacher(teacherID);
cmbTeacher.DisplayMember = ""; //here should be placed the string "FisrtName"+"LastName"

提前致谢

【问题讨论】:

    标签: c# .net winforms linq entity-framework


    【解决方案1】:

    您需要在数据源中包含全名值

    List<Teacher> teachers = (from teacher in context.Teacher 
                              let FullName = teacher.FirstName + " " + teacher.LastName
                              select teacher).Where(t => t.UserID == teacherID).ToList();
    
    cmbTeacher.DataSource = ShowTeacher(teacherID);
    cmbTeacher.DisplayMember = "FullName";
    

    class Teacher 
    {
        public string FirstName
        {
            get;
            set;
        }
    
        public string LastName
        {
            get;
            set;
        }
    
        public string FullName
        {
            get
            {
                return LastName + " " + FirstName;
            }
        }
    
        public Teacher(string firstname, string lastname)
        {
            FirstName = firstname;
            LastName = lastname;
        }
    }
    

    【讨论】:

    • 但是 t 是在 lambda 表达式中定义的,你是说教师.FirstName + " " teacher.LastName 而不是 t.FirstName ...?
    • 是的,我已经解决了这个问题,刷新页面
    • 我必须在教师类中添加属性 FullName 吗?因为它没有正确显示。提前致谢
    • @MarioRodz 是的,请参阅我的编辑示例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 2011-09-04
    • 1970-01-01
    相关资源
    最近更新 更多