2009-01-26 35 views
1

例如,在我的WCF中,如果我有一個Customer表和Order表,它們在Customer ID上彼此具有關聯關係。Linq到GridView中的SQL對象子屬性

我想獲得每個客戶的訂單數量的計數。

在常規的VB代碼我只是這樣做:

Dim CustID As Integer = 1234 
Dim cust As New MyService.Customer() 
cust = cust.GetCustomer(CustID) 
Response.Write(cust.Orders.Count) 

上面的代碼工作正常,但如果我想從一個GridView中訪問一樣,它似乎並沒有做出同樣的反應( albiet,從不同的方法,但我雖然採用相同的pricipals每個方法)

<asp:ObjectDataSource ID="odsCustomers" runat="server" SelectMethod="GetCustomers" TypeName="MyService.Customer" /> 

<asp:GridView ...> 
... 
<Columns> 
    <asp:BoundField DataField="Orders.Count" HeaderText="Order Count" /> 
</Columns> 
... 
</asp:GridView> 

所以我怎麼會做這樣的事情?

回答

3

您可以嘗試向Customer類中添加一個名爲OrderCount的部分方法,並在您的BoundField中引用該方法。右鍵單擊您的dbml文件並轉到查看代碼,然後添加。

VB

Partial Public Class Customer 

    Public ReadOnly Property OrderCount As Integer 
     Get 
      Return Me.Orders.Count 
     End Get 
    End Property 

End Class 

C#

public partial class Customer 
{ 
    
    public int OrderCount { 
        get { return this.Orders.Count; } 
    } 
} 
+0

任何其他解決辦法? 我的意思是,有沒有其他方式來設置值本身像一箇中繼器通過服務器標記Text =「<%#Eval(」Orders「)。Count%>」 – Shimmy 2009-06-08 06:34:41

相關問題