私はEFを初めて使用し、データベース型User
から情報クラスに変換する拡張メソッドを使用しようとしていますUserInfo
。
それが違いを生む場合、私は最初にデータベースを使用していますか?
以下の私のコードはエラーを出します
DbContext が破棄されているため、操作を完了できません。
try
{
IQueryable<User> users;
using (var dataContext = new dataContext())
{
users = dataContext.Users
.Where(x => x.AccountID == accountId && x.IsAdmin == false);
if(users.Any() == false)
{
return null;
}
}
return users.Select(x => x.ToInfo()).ToList(); // this line is the problem
}
catch (Exception ex)
{
//...
}
users
なぜそうなるのかはわかりますが、where ステートメントの結果がオブジェクトに保存されない理由もわかりません。
私の主な質問は、なぜそれが機能しないのか、そして次に拡張メソッドと EF を使用する正しい方法は何だと思いますか?