我對linq很新,所以請耐心等待。如何使用LINQ-to-SQL連接多個表?
我正在研究一個asp.net網頁,我想添加一個「搜索功能」(用戶輸入姓名或姓氏或兩者或只是其部分的文本框,並獲取所有相關信息)。我有兩個表格(「Person」和「Application」),我想顯示Person(姓名和姓氏)以及一些來自Application(score,position,...)的一些列。我知道如何使用sql做到這一點,但我想了解更多關於linq的知識,因此我想用linq來做。
現在我有兩個主要思路:
1)
var person = dataContext.GetTable<Person>();
var application = dataContext.GetTable<Application>();
var p1 = from p in Person
where(p.Name.Contains(tokens[0]) || p.Surname.Contains(tokens[1]))
select new {Id = p.Id, Name = p.Name, Surname = p.Surname}; //or maybe without this line
//I don't know how to do the following properly
var result = from a in Application
where a.FK_Application.Equals(index) //just to get the "right" type of application
//this is not right, but I don't know how to do it better
join p1
on p1.Id == a.FK_Person
2)另一種想法就是要經過「申請」和而不是「加入P1 ......」使用
var result = from a in Application
where a.FK_Application.Equals(index) //just to get the "right" type of application
join p from Person
on p.Id == a.FK_Person
where p.Name.Contains(tokens[0]) || p.Surname.Contains(tokens[1])
我認爲,第一個想法是查詢,而第一個「地方」的條件,這也是我打算用更好。無論什麼更好(更快),我仍然不知道如何使用linq來做到這一點。最後,我想顯示/選擇結果的一些部分(列)(連接表格+過濾條件)。
我真的很想知道如何使用linq做這樣的事情,因爲我將處理一些類似的本地數據問題,我只能使用linq。 有人可以請我解釋一下怎麼做,我花了好幾天的時間試圖找出答案並在網上搜索。
那麼,這是Linq-to-SQL? – 2011-02-04 14:45:24
是的,這是Linq-to-SQl(在C#中,Framework 4.0)。我完全忘了提及它。 – Ben 2011-02-04 16:46:43