我在WindowsForm应用程序中使用LINQ to Entites。
我正在尝试使用查询结果填充Lisbox:
所以我的数据源是一个List,其中User是我数据库中的一个表,而我的模型中是一个EntityType。
问题是我希望Displaymember成为3个不同列的concat。 (User.Firstname +“”+ user.LastName +“ - ”+ user.userCode)
和ValueMember为user.ID;
我可以使用4个项目创建userItem的结构,遍历User列表并将它们添加到另一个List。但这似乎是双重处理。
答案 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。通过表达式
组合其余列的值