0

Entity Framework で LINQ クエリを使用して、学生の詳細と出席時間のリストを取得したいと考えています。

次のクエリを使用して、学生の詳細のリストと、学生が出席した合計時間をバインドしています。

var students = (from pa in db.tblstudents
                select new studentModel
                {
                    Name = pa.Name,
                    StudentID = pa.ID,
                    RollNO = pa.rollNO,
                    Department = pa.Department,
                    Phone = pa.Phone,
                    Address = pa.Address,
                    TotalHours = (from time in tblhours 
                                  where time.studentID = pa.ID 
                                  select time.hours).Sum()
                }).Distinct().AsQueryable().ToList();

my studentModel looks like below:- 
public class StudentModel 
{ public string Name { get; set; } 
public int StudentID { get; set; }
 public string RollNO{ get; set; } 
public string DepartMent{ get; set; }
 public long Phone{ get; set; }
 public string Address{ get; set; }
 public string Address2{ get; set; }
 public decimal TotalHours{ get; set; }
 } 

tblhours と tblstudent は学生 ID によって関連付けられています。特定の期間内にすべての学生が出席した時間を取得したい場合はどうすればよいですか?

上記のクエリを実行すると、「パラメーターなしのコンストラクターとイニシャライザーのみが LINQ to Entities でサポートされています」というエラーが表示されます。

サブクエリを使用して合計時間を選択していたときに間違っていると思います...

4

1 に答える 1

0

StudentModelクラスに空のコンストラクタがあることを確認してください

ところで、関係を適切に設定すれば、これもできるはずです

TotalHours = pa.tblhours.Sum(time=>time.hours)
于 2013-07-24T01:04:29.880 に答える