我在我的网站上实现了搜索功能,使用以下功能使用1个表。
搜索功能
[HttpPost]
public ActionResult Results(string SearchString)
{
using (var objCtx = new ApplicationDbContext())
{
var Restaurant = from u in objCtx.Restaurants
select u;
if (!String.IsNullOrEmpty(SearchString))
{
Restaurant = Restaurant.Where(s => s.Name.Contains(SearchString));
}
return View(Restaurant.ToList());
}
}
是否可以扩展此功能,以便它可以在不使用Lucene.net等搜索引擎的情况下搜索多个表?
任何帮助都会很棒。
答案 0 :(得分:2)
您可以查询表,然后合并iqueryable列表
var Restaurant = from u in objCtx.Restaurants
select u;
if (!String.IsNullOrEmpty(SearchString))
{
Restaurant = Restaurant.Where(s => s.Name.Contains(SearchString));
}
// Second table.
var Restaurant2 = from u in objCtx.Restaurants2
select u;
if (!String.IsNullOrEmpty(SearchString))
{
Restaurant2 = Restaurant2.Where(s => s.Name.Contains(SearchString));
}
return View(Restaurant.Union(Restaurant2).ToList());
或
return View(Restaurant.Concat(Restaurant2).ToList());