0

我的 linq 查询有问题。我想要一个带有下拉列表的搜索字段(文本框)。当我在“ProductID”上设置下拉列表时,他只需要在“ProductID”表中搜索,而当我将它放在“Productinformation”上时,他必须在“productinformation”表中搜索,我希望有人能理解这一点吗?

所以我想要的是以下查询:

    var textboxvalue = TextBox1.Text;
            var dropdownsearch = DropDownList1.SelectedValue;    

var Metadata = from m in db.Metadatas
                               join mm in db.Multimedias
                               on m.multimediaID equals mm.multimediaID
                               where (m. {{{Here i want the dropdownsearch}}} .ToString().Contains(textboxvalue) ||
                                      mm. {{{Here i want the dropdownsearch}}} .ToString().Contains(textboxvalue))


                               select new
                               {
                                   mm.ProductID,
                                   mm.filename,
                                   mm.filetype,
                                   mm.filesize
                               };

那么,如何从下拉列表中获取选定的值,作为查询中的表?通常您会将 m.ProductID 放入查询中,但我想要其中的 Selected 值,例如m.(Dropdownlist1.Selectedvalue)... 或m.dropdownsearch.. 这可能吗?如何?

谢谢 :)

4

1 回答 1

0
var Metadata = from m in db.Metadatas
               join mm in db.Multimedias
               on m.multimediaID equals mm.multimediaID
               select new { m, mm };

var filtered = Metadata.Where("m." + dropdownsearch + " like '@0'", textboxvalue);
var filtered = Metadata.Where("mm." + dropdownsearch + " like '@0'", textboxvalue);
var result = filtered.Select(f => new
                               {
                                   f.mm.ProductID,
                                   f.mm.filename,
                                   f.mm.filetype,
                                   f.mm.filesize
                               };
于 2012-11-02T04:11:39.923 回答