2012-02-19 8 views
0

私はLINQが新しく、(悲しいことに)混乱したsqlコマンドをLinqに変換する必要があります。 データベースには2つのシンプルなテーブルがあります。最初のものは名前(cols "Name"と "NameID")を保持し、他のテーブルはニックネーム(col "Nick"、 "NickID"、 "FK_NameID")を保持します。各ニックネームには、実名(名前ID)を指すIDと外部キーがあります。 C#を使用して"inner join"と "like"を含むSQLをLINQに変換する

は、このコードは、その中に「SomeString」が含まれている任意のニックネームretriveするために使用された:私は、「いいね」とグーグルの後に見た限りで

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

を作り出すことができるSQLコマンドに「参加」複雑なLinq:\あなたは私を助け、LINQの式がこれまで使用していたSQLコマンドと同等であることを教えてくれますか? Linqをバイパスし、代わりにDataSet、DataTablesを使用することはありますか? は私が合計のLINQ-noobのだ:それは実際にはかなり似て

答えて

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として良いだろう。