私はlinqに慣れていません。私はEF4.0を使用しています。私は常にラムダ式を使用して、次のようなデータを取得しています。
List<User> users = db.Users
.Include(u => u.Licences)
.Include(u => u.Licences.Select(l => l.LicenceProducts.Select(lp => lp.Product)))
.Include(u => u.UserAddress)
.Include(u => u.Contact)
.Include(u => u.User2)
.Include(u => u.SupportProducts)
.Where(u => u.Type != (int)UserType.Admin)
.OrderBy(u => u.Name)
.ToList();
残念ながら、実行には多くの時間がかかります。したがって、左結合を使用して変更したいのですが、Linq で結合がどのように機能するかを正しく理解していません。
これが私が試したことです:
users = from user in db.Users
join licence in db.Licences on user.UserID equals licence.UserID
join licenceProduct in db.LicenceProducts on licence.LicenceID equals licenceProduct.LicenceID...;
返される型は、以前と同じではありません (リスト)
私もこれを試しましたが、同じ問題があります
users = db.Users
.Join(db.Licences, lic => lic.UserID, user => user.UserID, (user, lic) => new { user, lic })