【问题标题】:Linq to SQL object child properties in GridViewGridView 中的 Linq to SQL 对象子属性
【发布时间】:2009-01-26 20:04:19
【问题描述】:

例如,在我的 WCF 中,如果我有一个 Customer 表和一个 Order 表,它们在 Customer ID 上相互关联。

我想获取每个客户的订单数。

在常规的 VB 代码中,我可以这样做:

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

上面的代码工作正常,但如果我想从 GridView 中访问相同的代码,它似乎不会以相同的方式做出反应(虽然,来自不同的方法,但我对每种方法应用相同的 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>

那么我怎么能做这样的事情呢?

【问题讨论】:

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


    【解决方案1】:

    您可以尝试向 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; }
        }
    }
    

    【讨论】:

    • 还有其他解决方案吗?我的意思是,有没有其他方法可以通过服务器标签 Text="" 在转发器中设置值本身
    • 是的 应该可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    • 2017-09-09
    相关资源
    最近更新 更多