2015-10-26 61 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加入。