在GridView中从不同的ActiveRecord表对象设置多个DataKeyName

在GridView中从不同的ActiveRecord表对象设置多个DataKeyName,gridview,castle-activerecord,Gridview,Castle Activerecord,我正在尝试使用asp.net GridView的DataKeyNames属性设置两个DataKey 我有一个简单的公式如下: Castle.ActiveRecord.Queries.SimpleQuery<ARMapping.CONFIGURATION> c = new Castle.ActiveRecord.Queries.SimpleQuery<ARMapping.CONFIGURATION>(@" select c from CONFIGUR

我正在尝试使用asp.net GridView的DataKeyNames属性设置两个DataKey

我有一个简单的公式如下:

Castle.ActiveRecord.Queries.SimpleQuery<ARMapping.CONFIGURATION> c = new Castle.ActiveRecord.Queries.SimpleQuery<ARMapping.CONFIGURATION>(@"
            select c from CONFIGURATION c left join c.LUserConfiguration luc left join luc.User u left join u.Dealer d left join c.TRUCK t");
Partial Public Class CONFIGURATION

    Public ReadOnly Property GetDealerID() As Integer
        Get
            Return LUserConfigurations.Item(0).Users.Dealer.ID
        End Get
    End Property
End Class
Castle.ActiveRecord.querys.SimpleQuery c=newcastle.ActiveRecord.querys.SimpleQuery(@)
从配置c left join c.LUserConfiguration luc left join luc.用户u left join u.经销商d left join c.t”)中选择c;
在数据绑定操作中,经销商的评估如下:

Castle.ActiveRecord.Queries.SimpleQuery<ARMapping.CONFIGURATION> c = new Castle.ActiveRecord.Queries.SimpleQuery<ARMapping.CONFIGURATION>(@"
            select c from CONFIGURATION c left join c.LUserConfiguration luc left join luc.User u left join u.Dealer d left join c.TRUCK t");
Partial Public Class CONFIGURATION

    Public ReadOnly Property GetDealerID() As Integer
        Get
            Return LUserConfigurations.Item(0).Users.Dealer.ID
        End Get
    End Property
End Class

但当我试图设置DataKeyNames=“ID,LUserConfiguration.User.Dealer.DealershipID”时,我得到了错误: “数据绑定:'ARMapping.CONFIGURATION'不包含名为'LUserConfiguration.User.Dealer.DealershipID'的属性。”

它在Eval'd时不会抱怨,但我不能将Eval放在DataKeyNames属性中

有什么想法吗?

接下来,我解决了这个问题

一个简短的解释。。。我为配置类创建了一个新的分部类(我这样做是因为我的ActiveRecord代码是自动生成的,我无法更改它。我确信这是强烈建议的用法,因为您的模型几乎总是具有分部类最适合的扩展功能

部分类别如下:

Castle.ActiveRecord.Queries.SimpleQuery<ARMapping.CONFIGURATION> c = new Castle.ActiveRecord.Queries.SimpleQuery<ARMapping.CONFIGURATION>(@"
            select c from CONFIGURATION c left join c.LUserConfiguration luc left join luc.User u left join u.Dealer d left join c.TRUCK t");
Partial Public Class CONFIGURATION

    Public ReadOnly Property GetDealerID() As Integer
        Get
            Return LUserConfigurations.Item(0).Users.Dealer.ID
        End Get
    End Property
End Class
然后,我将GridView的DataKeyNames属性设置为“ID,GetDealerID”。我还没有测试,但是页面现在正在加载,没有错误

您必须确保创建的是属性,而不是函数(根据上面的链接)