使用List <entity> </entity>填充ListBox

时间:2012-01-10 06:52:58

标签: c# sql linq

我在WindowsForm应用程序中使用LINQ to Entites。

我正在尝试使用查询结果填充Lisbox:

所以我的数据源是一个List,其中User是我数据库中的一个表,而我的模型中是一个EntityType。

问题是我希望Displaymember成为3个不同列的concat。 (User.Firstname +“”+ user.LastName +“ - ”+ user.userCode)

和ValueMember为user.ID;

我可以使用4个项目创建userItem的结构,遍历User列表并将它们添加到另一个List。但这似乎是双重处理。

2 个答案:

答案 0 :(得分:3)

您可以使用以下自定义属性扩展分部类中的实体:

public partial class User
{
    public string Description
    {
        get
        {
             return string.Format("{0} {1} - {2}", FirstName, LastName, UserCode);
        }
    }
}

如果您不想添加该属性,您还可以使用Linq Projection创建具有计算属性的自定义列表:

var listdata = (from u in Users
                select new
                {
                   Description = string.Format("{0} {1} - {2}", u.FirstName, u.LastName, u.UserCode).
                   Id = u.Id;    
                }.ToList();

然后,您可以将listdata绑定到列表框。

答案 1 :(得分:2)

为什么不在property中创建一个model,它会返回三个columns/properties的连接值。然后将DisplayMemeber设置为等于该属性

另一种方法是在表格中添加Computed Columns。通过表达式

组合其余列的值