我有一个包含如下三个表的数据库
台1
产品- ID、名称、描述、MediaType
台2
媒体- ID,媒体名称,媒体描述
Tbl3
tbl3 MediaID和ProductID 外键ProductAndMedia - ID, 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()
看起来和这个问题差不多