【发布时间】:2010-06-09 23:47:12
【问题描述】:
我有以下亚音速实体
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()
但我收到一个错误“...嵌套函数与委托的签名不同”
更新:
我真的不明白这个......
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()
更新
我最终使用了 Fluent Query
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 模式吗?
-
我正在使用 ActiveRecord。
-
我就是想不通....有人吗?
-
我发现运行 subsonics TT 文件非常简单,对于任何类型的表连接,最好创建视图,它将数据库特定代码保留在数据库中,然后您可以从像查看表格一样查看 KIS