最佳实践使用Linq2SQL&添加空行到数据绑定列表框的WinForms

时间:2011-09-28 17:59:30

标签: vb.net linq linq-to-sql

向ListBox添加空行(选择“nothing”)的最强大的方法是什么?

我使用的Sofar:

       Dim List = Enumerable.Repeat(New TABLE With {.Text = "", .ID = -1}, 1).AsQueryable().Union(From t In mainctx.TABLEs)
       ddlMangelKategorie.DisplayMember = "Text"
       ddlMangelKategorie.ValueMember = "ID"
       ddlMangelKategorie.DataSource = List.ToList

但这有一些缺点:

  • 罗嗦
  • 必须显式写入Type(本例中为TABLE),所以我不能将它包装在函数
  • 尚未找到适用于匿名类型的解决方案

即。如果我添加

   From t In mainctx.TABLEs Select Text=col1, id=col2

查询,此方法不再起作用。

由于

1 个答案:

答案 0 :(得分:0)

以下是我使用Union执行此操作的方法(请注意,您不需要Enumerable.Repeat也不需要AsQueryable)。

Dim emptyTable As New TABLE With {.Text = "", .ID = -1}
Dim list = {emptyTable}.Union(mainctx.TABLEs).ToList()
ddlMangelKategorie.DataSource = list

使用匿名类型:

Dim emptyTable = New With {.Text = "", .ID = -1}
Dim databaseTables = From t In mainctx.TABLEs 
                     Select Text = t.col1, ID = t.col2
Dim list = {emptyTable}.Union(databaseTables).ToList()
ddlMangelKategorie.DataSource = list