我有一个包含三个表的数据库,如下所示
Tbl 1
产品 - ID,名称,描述,MediaType
Tbl 2
媒体 - ID,MediaName,MediaDescription
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,但我在此实例中的名称之后。
无论如何以这种方式获取名称或者我是否需要再次调用数据库来获取ID的名称?
答案 0 :(得分:0)
您可以选择您感兴趣的字段作为新的匿名类型(或创建一个类,或使用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()
<强>更新强>
看起来这可能与this question相同。