Linq搜索查询多个表

时间:2014-10-02 13:40:22

标签: sql asp.net-mvc linq asp.net-mvc-3

我一直在为这段代码苦苦挣扎,我对此很陌生,所以请耐心等待。

以下代码非常适合在名为Blog的一个表中进行搜索。但是我还有3个表,看起来像这样:

--[FE]
----- [Blog]
----- [Bolted_steltanks]
----- [Mixers]
----- [Windpower]

我希望我的代码能够搜索所有4个表,现在它只搜索1个表。下面是我的代码的一部分:

var q = from p in dbBlog.Blog.ToList()

                //join w in dbAlbum.Windpower on p.Description equals w.Description

                where
                    Data.Any(x => p.Description.IndexOf(x) >= 0) ||
                    Data.Any(x => p.Date.IndexOf(x) >= 0)
                orderby p.id descending
                select p;
return View("Found", q.ToList());

另一个小问题是接收结果的视图。我不确定如何创建模型,使用此代码可以很好地使用一个表:

@model IEnumerable<FE.Blog>

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以像下面一样使用linq加入多个表格。

from t1 in Table1
join t2 in Table2 on t2.Id equals t1.Id //OR matching field
join t3 in Table3 on t3.Id equals t1.t3Id //OR matching field
where t1.ConditionColumn == value // OR all your where clause to come here
select new { col1 = t1.col1, col2 = t1.col2, col3 = t1.col3, col4 = t2.col1, col5 = t3.col1 }; //OR all your select to come here

我认为不需要@model IEnumerable<FE.Blog>。 /这样的多表声明