我需要使用Linq to SQL查询为组合框创建数据源。
即。 cboFindPerson.DataSource = LQPersonList (其中LQPersonList是查询)
但这一次,我需要首先连接LastName和FirstName字段,然后按FullName排序,就像这样。
'-- Create the first Query with concatenation
Dim LQ = From b In DCAppMain.tblPeopleMain
Where b.PeopleID = lngPeopleID And b.CurrentEmployee = True
Select FullName = b.LastName & ", " & b.FirstName, b.PeopleID
'-- Create the 2nd Query based on first so I can order by FullName
Dim LQPersonList = From c In LQ
Order By c.
但是当我到达c。时,intellisense说没有可用的字段。
我在没有问题之前根据查询编写了查询。我还连接了没有问题的字段。但显然把两者放在一起是一个问题。
我现在已经搜索了好几个小时了,但找不到符合目标的答案。
答案 0 :(得分:0)
而不是使用:
Dim LQ = From b In DCAppMain.tblPeopleMain
Where b.PeopleID = lngPeopleID And b.CurrentEmployee = True
Select FullName = b.LastName & ", " & b.FirstName, b.PeopleID
你需要使用:
Dim LQ = From b In DCAppMain.tblPeopleMain Where b.PeopleID = lngPeopleID And
b.CurrentEmployee = True Select New With{.FullName = b.LastName & ", " &
b.FirstName, .PeopleID = b.PeopleID}
这是因为当您从LINQ语句中提取单个属性时,最终会得到一个IEnumerable(Of AnonymousType)
,这很好,但是如果您想要智能感知来获取您从对象集合中提取的值,那么你需要为它们指定名称。
因此,使用第二个LINQ语句,您基本上是为匿名类型创建一个构造函数,该构造函数还在构成LINQ语句返回的集合的匿名对象上定义属性FullName
和PeopleID
。