そのようにデータベースコンテキストにアクセスしようとすると、結果を通じて他のテーブルにアクセスできます。
MyEntities myEnt = new MyEntities();
var comments = myEnt.Comments.Where(x=>x.UserName == UserName);
foreach(Comment comment in comments){
string FirstName = comment.UserProfile.FirstName;
}
私のインテリセンスは外部キーマッピングをプルアップし、結合されたテーブルにアクセスできるようにしますUserProfile
。これは、次のような結合を使用して標準のlinqクエリを実行するのとは対照的に、この方法で結果を「チェーン」するのは悪い習慣ですか。
var query = from comments in myEnt.Comments
join up in myEnt.UserProfiles on comments.UserId equals up.UserId
select new {...}
アップデート
また、次のようにさらに進んだ場合はどうなりますか。
comment.aspnet_Users.UserProfiles.UserRatings.ToList()
同様のことを試しましたが、2回目にこのアプローチを試した場合、クエリにかなり時間がかかったようです。インテリセンスを使用すると、関連するテーブルにかなりの距離をたどることができますが、このように複数のテーブルをリンクする場合、速度に影響しますか?