[ad_1]
データベース内に 2 つのテーブルがあり、そのデータを結合して操作したいと考えています。
そこで私はそのコードスニペットを使用しました:
C#
var listOfFoundRespIds = (from a in context.Adresses join e in context.ExtraData on a.LFD equals e.lfd where a.PROJID == 2048 select new { RESPID = e.str03, LFD = e.lfd, PROJID = a.PROJID }) .ToList();
データベース テーブル自体には 31.966.037 のエントリがあります。
デバッグ中(コード実行直後)、iEnumeration Viewerを起動してcontext.Adressesを調べ、csvエクスポートを実行しました。 そのリストには 995.101 個のエントリがありました。 したがって、実行時には、メインテーブルのすべてのエントリを操作できるわけではありません。
おそらく誰かが修正方法を知っていますか?
私が試したこと:
IEnumeration Viewer と CSV チェックアウトを確認しました
データベーステーブルを再確認してください
Entity Framework やその他の SQL に関するドキュメントを読んでください。
解決策 1
あなたは、 INNER JOIN
– からの結果のみが返されます。 Addresses
に対応するレコードがあるテーブル ExtraData
テーブル。
すべてのレコードが必要な場合は、 Addresses
テーブル内に対応するレコードがない場合でも、 ExtraTable
、その後、次のことを実行する必要があります。 LEFT JOIN
。
左外部結合を実行する (C# の LINQ) – C# | Microsoft Learn[^]
C#
from a in context.Adresses join ed in context.ExtraData on a.LFD equals e.lfd into edg from e in ed.DefaultIfEmpty() where a.PROJID == 2048 select new { RESPID = e.str03, LFD = e.lfd, PROJID = a.PROJID }
[ad_2]
コメント