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

时间:2014-05-30 20:38:53

标签: vb.net linq-to-sql

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

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的名称?

1 个答案:

答案 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相同。