重複を見つける必要がある 50 万件のレコード テーブルがあります。だから私は私が作成したこのコードを使用します:
var dups2 = from m in mg_B
group m by new { m.Addr1, m.Addr2, m.City, m.State }
into g
where g.Count() > 1
select g;
このコードの問題は、addr1 が空の文字列 "" とそれぞれ NULL である 2 つのレコードを重複として認識しないことです。
基本的に、フィールドの null と空の値を比較すると、それらは異なると見なされますが、同じと見なされる必要があります。
すべてのレコードを調べて、null 値を "" に置き換えることができることはわかっていますが、コンピューターが 4000 レコードを処理するのに 1 分かかりました。これは、誰かがボタンをクリックすると繰り返し実行されます。
最初にいくつかのフィールド (テーブルには 40 以上のフィールドがあります) を持つクラスを作成したため、この null 空文字列の問題について知りました。
List<CombineClass> mg = (from m in db.MG_Backup
where m.IsArchived == false
select new CombineClass { id = m.ID, name = m.Name, addr1 = string.IsNullOrEmpty(m.Addr1) ? "" : m.Addr1, addr2 = string.IsNullOrEmpty(m.Addr2) ? "" : m.Addr2, city = m.City, state = m.State }).ToList();
何か案は ?