0

Student次のコードを使用して、テーブルの主キーを取得しました。

var stud_id = (from p in context.Students
                          where p.Student_Name == "Bruce"
                          select  p.Student_Id );

stud_id次のコードを使用して、エンティティ全体を取得しようとすると:

Student requiredstud = new Student();
foreach (var p in stud_id)
            {
                //Console.WriteLine(p);

            requiredObj = context.Students.Find(p);
            string tempObj = JsonSerializer.SerializeToString<Student>(requiredObj);
            Console.WriteLine(tempObj);

            }

行で次の例外が発生します。

requiredObj = context.Students.Find(p);

ここに画像の説明を入力

この問題を解決し、その詳細を取得する方法student

編集: InnerException

は:{"There is already an open DataReader associated with this Command which must be closed first."}

4

1 に答える 1

0

を反復IQueryableし、同じ を使用して別の学生を見つけようとしてcontextいるため、例外が発生しています。.ToListクエリを繰り返して、データベースからレコードを取得する必要があります。後で foreach ループでコンテキストを使用できます。したがって、クエリは次のようになります。

var stud_id = (from p in context.Students
                          where p.Student_Name == "Bruce"
                          select  p.Student_Id ).ToList();

または

var stud_id = context.Students.Where(p=> p.Student_Name == "Bruce").ToList();
于 2012-12-31T04:45:32.057 に答える