0
我有以下EF實體:獲取兩個實體之一的列...使用last和groupby?
public class Evaluation {
public Int32 Id { get; set; }
public DateTime Created { get, set; }
public String Interview { get; set; }
public virtual ICollection<Test> Tests { get; set; }
public virtual ICollection<Exam> Exams { get; set; }
}
public class Student {
public Int32 Id { get; set; }
public String Name { get; set; }
public virtual Evaluation Evaluation { get; set; }
}
public class Exam {
public Int32 Id { get; set; }
public Int32 Note { get; set; }
public Int32? Factor { get; set; }
public virtual Evaluation Evaluation { get; set; }
}
public class Test {
public Int32 Id { get; set; }
public Int32 Note { get; set; }
public Int32? Factor { get; set; }
public virtual Evaluation Evaluation { get; set; }
}
幾個意見:
- 的評價可以有一個考試,一個測試或無。
- 考試或考試有一個筆記,但可以有或沒有因子。
我所尋找的是:
爲每個學生找到最後的考試或測試有兩個注意事項和因素。
然後得到的Notes /因素的列表和繁殖兩種:結果=注*因子
我嘗試以下操作:
context.Evaluations
.Where(x => x.Exam != null || x.Test != null)
.GroupBy(x => x.Student)
在此之後,我不知道如何獲得最後的考試或者使用Note和Factor來測試並使用和計算結果。
我該怎麼做?
只是一種愚蠢的想法的東西,也許你可以創建一個抽象類都繼承稱爲TestOrExam然後添加另一個連接的屬性? 它看起來像公共虛擬ICollection TestsOrExams {獲得{返回Tests.Cast ().Concat(考試); };} –
2014-08-29 18:50:13
測試和考試在我的例子中非常相似,但在我的真實代碼中,他們不是......我只是爲了簡化問題而發佈這種方式。 – 2014-08-29 20:38:38