私がDBからレコードをプルする必要がありますを使用してDBとは別個のレコードを引く、のは、この構造を仮定しましょう2つの列
ID、名前、タイプ、キー、EXPDATE、のisActive
は今、いくつかの再構築が行われていましたIDとタイプに基づいてテーブルに重複レコードが保持される可能性があります。私はlinqを使用してDBからレコードを引き出すことができるようにしたいが、同じID /タイプを持つレコードのうちの1つだけを取り出したい。
EX:
1、フレッド、1、NewGuid、2019年12月15日、1
1、フレッド、1、NewGuid、2017年10月1日、1
2、 Goerge、2、NewGuid、02/01/2018、1
結果セットをFredの1レコード、Goergeの1レコードにします。 Fredのレコードのどれがただ一つしか返されないということは本当に重要ではありません。
DISTINCTを使用しようとしましたが、IDistinctが返され、レコード全体ではありません。 linqを使ってこれを行う方法はありますか?ここで
は、私が試したものです:
_table.AllReadOnly().Where(i => i.ID == id && i.IsActive).GroupBy(i => i.ID, i.Type).Select(i => i.FirstOrDefault()).ToList();
_table.AllReadOnly().Where(i => i.ID == id && i.IsActive).Distinct().ToList();
私は(.Distinctを知っている)ことは何もしませんように。私はEqualityComparerのやり方を考え出しましたが、それが私が行くべきルートかどうかは分かりません。
ありがとうございました。私はそれがなぜ私がそれを持っていた方法対働いたのだろうか。鉱山はちょうどリストを返しました。 –
ようこそ。あなたは、署名によってグループ内の結果セレクタとして 'i.Type'を渡しました。あなたはそれを必要としません。 –