前提・実現したいこと
https://teratail.com/questions/377011 の続きの質問になります。
以下のようなテーブを考えた際に
テーブルAからシリアル(ここではaaaa)を取得するため、
テーブルBの列;コードを’ー’と’N’で分割したもの と テーブルAの列;年月日を比較して、
合致するテーブルAのデータを取得したいです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
foreachで4行分回すのではなく、以下の処理を4行分、一気にNewEntityリストに格納することは可能でしょうか。
string[] ymd = List[0].Split(new char[] { '-', 'N' });
var NewEntity =context.テーブルA.AsEnumerable().Where(x => x.Year.Tostring() == ymd[0] && x.Month x.Year.Tostring() == ymd[1] && x.Day x.Year.Tostring() == ymd[2]) .ToList();
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
テーブルA
年 | 月 | 日 | シリアル |
---|---|---|---|
11 | 12 | 4 | aaaa |
22 | 17 | 5 | baaa |
11 | 12 | 4 | aabb |
22 | 17 | 5 | bbbb |
テーブルB
コード | |
---|---|
11-12N4 | ←テーブルAの1行目と合致 |
10-3N4 | |
13-12N4 | |
14-3N4 |
該当のソースコード
C#
1 2 //リストにテーブルBのコードを入れる 3 var List = new List<string>(); 4 テーブルBエンティティ.ForEach(x => { List.Add(x.Code); }); 5 6 7 //Listのcodeを三分割して、テーブルAの年月日と比較する処理 8 string[] ymd = List[0].Split(new char[] { '-', 'N' }); 9 10 var NewEntity = context.テーブルA.AsEnumerable() 11 .Where(x => x.Year.Tostring() == ymd[0] && x.Month x.Year.Tostring() == ymd[1] && x.Day x.Year.Tostring() == ymd[2]) 12 .ToList(); 13 14 15
補足情報(FW/ツールのバージョンなど)
C#
.NET
Entity Framework
SQLServer
VisualStudio2017