2012-02-19 51 views
0

我是LINQ的新手,並且(可惜)我需要將一些混亂的sql命令轉換爲Linq。 我的數據庫中有兩個簡單的表格。第一個是名稱(cols「Name」和「NameID」),其他表包含暱稱(cols「Nick」,「NickID」,「FK_NameID」)。每個暱稱都有ID和外鍵指向真實姓名(姓名ID)。將SQL與「內部連接」和「like」一起轉換爲LINQ

使用C#,這段代碼被用來以檢索包含在裏面「SomeString」任何暱稱:

comm = new SqlCommand("SELECT Name FROM Names INNER JOIN Nicks ON NameID = FK_NameID AND Nick LIKE '%" + SomeString + "%'", Connection); 

至於我在Google上搜尋,「像」後看到「加入」在SQL命令可能產生複雜的Linq:\你能幫我一下,告訴我什麼LINQ表達式等於我目前使用的SQL命令?是否有任何繞過Linq並使用DataSet,DataTables? 我總的LINQ小白:\

回答

2

這是非常類似的實際上是:

var query = from name in names 
      join nick in nicks on name.NameId equals nick.FK_NameId 
      where nick.Nick.Contains(SomeString) 
      select name.Name; 

你應該想想你的列名 - FK_NameId會爲NameId更好的(在我看來)。