私はAPIにパフォーマンス上の問題があります。それによりEntity Frameworkのincludeステートメントによるパフォーマンスの問題
例以下のような複数のテーブルからデータを取得することである。
Users.Include(x => x.UsersAdditionInfo)
.Include(x => x.UserRoles)
.Include(x => x.Location)
注:これらのテーブルのそれぞれは、ロケーションテーブルを除くほとんど(1,50,000)レコードを含みます。
.Include
の代わりにジョインを使用し、同じパフォーマンスの問題に直面しています。
例:
from ub in users
join ua in UserAdditionalInfo on ub.Id equals ua.UserId
join ur in UserRoles on ub.Id equals ur.UserId
join urs in userRoles on ur.RoleId equals urs.Id
join l in Location on ub.LocationId equals l.Id
into leftLocation
from location in leftLocation.DefaultIfEmpty()
親切にあなたのEDMXがおそらく構成されている場合は、あなた自身に参加する必要はありません複数のテーブルに
場合EDMXにそれを追加することができ、
も(私はあなたのスキーマビットfudgedましたが、うまくいけば、あなたは私のポイントを得ます)クエリの計算は問題ではありません(ただし、インクルードの数が多いとクエリの計算が非常に重くなりますが、実際に実行されたクエリの数を減らすようにしてください)。これらのIQueryablesで何をやっていますか? – DevilSuichiro