0

フロー SQL クエリを linq に変換して、Web API コントローラー内で使用できるようにする方法。

select * from String where StringNumber in 
(
select Str1 from Detail where DetailNr = 6
union 
select Str2 from Detail where DetailNr = 6
union 
select Str3 from Detail where DetailNr = 6
union 
select Str4 from Detail where DetailNr = 6
)

個々の弦番号を選択しようとしましたが、これを思いつきました:

var str1 = _dataContext.Context.Detail.AsQueryable()
    .Where(n => n.DetailNr == 6)
    .Select(n => n.Str1 );
var str2 = _dataContext.Context.Detail.AsQueryable()
    .Where(n => n.DetailNr == 6)
    .Select(n => n.Str2 );
var str3 = _dataContext.Context.Detail.AsQueryable()
    .Where(n => n.DetailNr == 6)
    .Select(n => n.Str3 );
var str4 = _dataContext.Context.Detail.AsQueryable()
    .Where(n => n.DetailNr == 6)
    .Select(n => n.Str4 );

次に、次のようなもの:

var result= _dataContext.Context.String.AsQueryable()
    .Where(s => s.StringNumber == str1 or str2 or str2 or str4).ToList();

これはasp.net MVCコントローラーでどのように記述すべきですか? おそらくSelectMany句を使用しますか?

4

2 に答える 2

0
var results =  _dataContext.Context.Detail.Where (n => n.DetailNr == 6).ToList();

var concattedResults = results.Select(n => n.Str1)
.Concat(results.Select(n => n.Str2))
.Concat(results.Select(n => n.Str3))
.Concat(results.Select(n => n.Str4)).ToList();
于 2013-09-27T13:08:46.700 に答える