2015-10-26 64 views
0

類似於SQL查詢 「其中一個LIKE '%B%'」C#的LINQ加入拉姆達(一鍵選擇包含其它關鍵選擇)

C#與.net框架4.6不接受這一點:

context.Table1 
    .Join(
     context.Table2, 
     table1 => table1.strStringContainsIntegers, // string (.net needs int, 
            //I need string that contains list of integers) 
     table2 => table2.intInteger,    // integer 
     (table1, table2) => new { table1.SomeField, table2.SomeField } 
    ).Where(o=>o.table1.strStringContainsIntegers.Contains(table2.intInteger+"-")); 

如何將一列(鍵選擇符2)中的兩個表/列表連接到另一列(鍵選擇符1)?

回答

2

你可以這樣說:

var query = 
    context 
     .Table1 
     .SelectMany(table1 => 
      context 
       .Table2 
       .Where(table2 => table1.strStringContainsIntegers.Contains(table2.intInteger.ToString())) 
       .Select(
        table2 => new {table1.SomeField, table2.SomeField})); 

LINQ將其轉換爲SQL加入。