これを本当にシンプルにします。私は2つのテーブルを持っています。
public class User
{
public virtual int UserId { get; set; } //primary key AND foreign key
//user attributes in here
public virtual UserProfile UserProfile { get; set; }
}
public class UserProfile
{
public virtual int UserId { get; set; } //primary key AND foreign key
//profile attributes in here
public virtual User User { get; set; }
}
基本的に、それらは 1 対 1 の関係で主キーを共有する 2 つのテーブルです。これらを 1 つに結合する必要があるかどうかはわかりませんが、これは既存のデータベースに基づいています。
さて、私が抱えている問題は、アクセスするときです。
このコードは速くなります (2 番目、おそらく 2 番目):
List<User> userList; //**This userList is defined elsewhere, but it's a list of about 400 users.
foreach (User user in userList)
{
var test = user.FirstName;
}
このコードは非常に遅くなります (10 ~ 30 秒):
List<User> userList; //**This userList is defined elsewhere, but it's a list of about 400 users.
foreach (User user in userList)
{
var test = user.UserProfile.EmailAddress;
}
user テーブルから UserProfile にアクセスすると、コードの実行に時間がかかるのはなぜですか?!