私はC#、SQL Server、ASP.NET、Entity Framework、Linqの各テクノロジを使用しています。学生IDを指定Linq Entity Framework:IEnumerableへの反復データなしでテーブルデータを選択
public class Courses
{
[Required]
public int Id { get; set; }
//more properties here
public student stud { get; set; }
}
public class inscribe
{
[Key]
public intId { get; set; }
//properties here
public student student{ get; set; }
[Required]
[ForeignKey("student")]
public string StudentId{ get; set; }
public Courses Courses{ get; set; }
}
が、私はのリストを返したい:
モデルクラス:
私は、データベース内の多対多の関係を持っています彼/彼女が書かれているコース。これは私がこれまでにしようとしているものです:
public IEnumerable<CursoDto> GetCursosAlumno(Int studentId)
{
//some code here to validate
var x = _dbContext
.Inscribe.Include(c => c.Courses)
.Where(c => c.StudentId == studentId).toList();
// x variable is a list<inscribe>
}
私の問題は、私はコースエンティティにアクセスして、例えば、それをリストとして返す方法を知っていないということです。
var result = X.Courses;
return result; //result is a list<courses>
どうすればいいですか?可能であれば、foreachブロックを使用しないでください。あなたは(それが透過的に作成されます)あなたのモデルに「リンクテーブル」(OPでinscribe
)を追加する必要はありませんコードファーストアプローチで
おかげ
よろしくお願いします。私はあなたがコントローラの中に示唆しているコードが刻印テーブルを逃していることに気づいた。ありがとうございます –
@evvk更新 –
更新をありがとう、私は質問があります、私は仮想プロパティを使用すると、私は遅延読み込みを有効にするが、熱心な読み込みであなたの提案を実装することはできますか? –