C# Lambda - EF Core,Col A+ Col B
C# Lambda - EF Core, Col A+ Col B
我正在寻找一种方法 select 使用 lambda.. 类似于此 TSQL
SELECT Id FROM TableA
WHERE TableA.col1 +' '+ TableA.col2 IN
(
SELECT TableB.col1 +' '+ TableB.col2 FROM TableB
)
到目前为止我有这个 lambda 表达式:
public async Task<int[]> GetFavouritesIdsAsync()
{
String[] mergedTableB = await _basicContext.TableB.Select(x => $"{x.col1}_{x.col2}").ToArrayAsync(); // this works!
return await _basicContext.TableA.Where(x => mergedTableB.Contains($"{x.col1}_{x.col2}")).Select(x => x.Id).ToArrayAsync();
}
但它不起作用 - EF 无法翻译 string.format bla bla....
任何解决方法?
使用 LINQ,使用简单的连接操作:
_basicContext.TableA.Join(
_basicContext.TableB,
a => new {a.col1, a.col2},
b => new {b.col1, b.col2},
(a, b) => a );
现有尝试的解决方法:
mergedTableB.Contains(x.col1 + "_" + x.col2)
我正在寻找一种方法 select 使用 lambda.. 类似于此 TSQL
SELECT Id FROM TableA
WHERE TableA.col1 +' '+ TableA.col2 IN
(
SELECT TableB.col1 +' '+ TableB.col2 FROM TableB
)
到目前为止我有这个 lambda 表达式:
public async Task<int[]> GetFavouritesIdsAsync()
{
String[] mergedTableB = await _basicContext.TableB.Select(x => $"{x.col1}_{x.col2}").ToArrayAsync(); // this works!
return await _basicContext.TableA.Where(x => mergedTableB.Contains($"{x.col1}_{x.col2}")).Select(x => x.Id).ToArrayAsync();
}
但它不起作用 - EF 无法翻译 string.format bla bla....
任何解决方法?
使用 LINQ,使用简单的连接操作:
_basicContext.TableA.Join(
_basicContext.TableB,
a => new {a.col1, a.col2},
b => new {b.col1, b.col2},
(a, b) => a );
现有尝试的解决方法:
mergedTableB.Contains(x.col1 + "_" + x.col2)