我只是想通過多個ColumnNames存儲到會話變量的linq進行搜索功能。我用了一個方法:如何將字符串變量傳遞給linq選擇新的{}節
public void FillGrid(string CommandName,string ColumnName, string SearchText)
這已存儲會話價值的三大字符串變量。
現在我只是想傳遞的ColumnName這個查詢:
var query1 = (from p in db.Posts
join c in db.Categories on p.Category_id equals c.Id
join u in db.Users on p.User_id equals u.Id
where (p.ToUser_id == user_id || p.ToUser_id == null) && p.User_id != user_id
orderby p.Sent_Datetime descending
select new
{
Id = p.Id,
Title = p.Title,
Publisher = u.First_name + " " + u.Last_name,
ToUser = p.ToUser_id,
PublishDate = p.Sent_Datetime,
IsFile = p.IsFileAttached,
CategoryName = c.Category_name,
status_name = (from s in db.Status where (s.Id == p.status_id) select s.status_name).FirstOrDefault(),
Group_name = (from g in db.Groups where (g.Id == p.group_id) select g.Group_name).FirstOrDefault(),
FileSize = p.TotalFileSize,
ColumnName = Sesssion["ColumnName"].ToString()
}).Where(q => q.ColumnName.Contains(SearchText));
然而,的ColumnName不給任何文本或可能不是這個查詢我必須手動出欄的名字,因爲的一部分。
了多列,我有,所以我不能使用該語句,如:
.Where(q => q.Tile.Contains(SearchText));
此查詢工作正常單列。但有多個列我有,所以我必須從外側設置q.ColumnName。
請把更多的精力投入到格式化你的代碼。您的帖子的最初版本的查詢里程大部分都在右側。在發佈之前查看預覽,並確保它是*如果您正在閱讀並希望回答的話,您會希望它看起來如何。 –
(我也用英文編輯了這篇文章,但是我不明白最後一句話,所以你可能想進一步編輯以澄清它。) –