我有以下的亚音速实体帮助Subsonic3 ActiveRecord的LINQ查询
TInvoiceHeader
TAccountAssociation
我怎样才能实现以下的LINQ(亚音速)
SELECT * from TInvoiceHeader
WHERE custid IN
(SELECT custid FROM TAccountAssociation
WHERE username = 'a')
我需要绑定结果到GridView。
更新:我试过
Dim accounts As List(Of TAccountAssociation) = _
TAccountAssociation.Find(Function(x) x.UserName = "a")
GridView1.DataSource = TInvoiceHeader.All() _
.Where(Function(x) accounts.Contains(x.custID))
GridView1.DataBind()
但我得到一个错误 “...嵌套函数DOWS不具有相同签名的委托”
更新:
我真的不吓坏GET这...
why does this work
Dim accounts() As String = {"N12345", "A12455"}
GridView1.DataSource = TInvoiceHeader.All(). _
Where(Function(c) accounts.Contains(c.custID))
GridView1.DataBind()
但是这不是
Dim accounts = TAccountAssociation.Find(Function(x) x.UserName = "a")
GridView1.DataSource = TInvoiceHeader.All(). _
Where(Function(c) accounts.Contains(c.custID))
GridView1.DataBind()
更新
最后我用流利的查询
GridView1.DataSource = New customerWEBDB().Select.From(Of TInvoiceHeader)_
.Where("custID") _
.In(New customerWEBDB().SelectColumns("custID") _
.From(Of TAccountAssociation) _
.Where("UserName").IsEqualTo("aaa")) _
.ExecuteTypedList(Of TInvoiceHeader)()
GridView1.DataBind()
希望有人会告诉我更好的东西。
您是否在为实体使用ActiveRecord或Repository模式? – Rony 2010-06-10 00:20:30
我正在使用ActiveRecord。 – 2010-06-10 00:23:47
我只是无法弄清楚.... ....任何人? – 2010-06-10 01:17:17