別のビジネスロジッククラスを使用してデータベースからデータオブジェクトを取得しています。
public partial class HelperUsers
{
public User GetUser(string Username, string Password)
{
using (var myEntities = new BusinessLogic.Entities())
{
var query = (from u in myEntities.Users
join link in myEntities.linkUserPhoneNumbers on u.UserId equals link.UserId
join p in myEntities.PhoneNumbers on link.PhoneNumberId equals p.PhoneNumberId
where u.UserName == Username && u.Password == Password
select u).ToList();
if (query.Any())
return (User)query[0];
}
return null;
}
}
ただし、これは私の通話ページで使用する場合はうまく機能します
protected void btnLoad_OnClick(object sender, EventArgs e)
{
HelperUsers helper = new HelperUsers();
var myUser helper.GetUser("username", "password")
// This works fine
lblUserName.Text = myUser.Username
// If i try to read one of the child objects from the join it returns an error
if (myUser.linkUserPhoneNumbers.Any())
{
//do something
}
}
私が得るエラーは
The ObjectContext instance has been disposed and can no longer be used for operations that require a connection.
誰もがこれを回避する方法を知っているので、ユーザーオブジェクトのすべての情報にアクセスできます。