为radioButton设置数据源字段的Linq查询



我有一个包含如下三个表的数据库

台1

产品- ID、名称、描述、MediaType

台2

媒体- ID,媒体名称,媒体描述

Tbl3

ProductAndMedia - ID, MediaID, ProductID

tbl3 MediaID和ProductID 外键

然后我有一个Linq查询

Dim query = From MyDataContext.ProductAndMedia.Where(Function(i) i.ProductID = PiD).ToList()

然后将其作为radioButton的数据源

rbt.DataSource = query
rbt.DataTextField = ????
rbt.DataValueField = "ID"
rbt.DataBind()

我想要实现的是让MediaName成为radionButton列表的TextField。如果我使用MediaID, ProductID作为文本字段,那么它将显示特定产品/媒体的ID,但在此实例中,我在Name之后。

是否有以这种方式获得名称,或者我是否需要再次调用数据库以按ID获取名称?

您可以选择您感兴趣的字段作为新的匿名类型(或创建类,或使用KeyValuePair等)。

Dim query = From MyDataContext.ProductAndMedia _
    .Where(Function(i) i.ProductID = PiD) _
    .Select(Function(i) New With { .ID = i.ID, .MediaName = i.Media.MediaName }) _
    .ToList()
rbt.DataSource = query
rbt.DataTextField = "MediaName"
rbt.DataValueField = "ID"
rbt.DataBind()

看起来和这个问题差不多

最新更新