我有這些模型更新許多到許多實體框架的關係拋出一個lambda表達式錯誤
public class Admin
{
public Admin()
{
this.course = new HashSet<Courses>();
}
[Key]
public int ID { get; set; }
public string LoginName { get; set; }
public virtual ICollection<Courses> course { get; set; }
}
public class Courses
{
public Courses()
{
this.admin = new HashSet<Admin>();
}
[Key]
public int ID { get; set; }
public string Name { get; set; }
public virtual ICollection<Admin> admin { get; set; }
}
,這是我的控制器方法來更新
public ActionResult Admins(Admin rec, IList<int> CourseId)
{
if (rec.ID > 0) // edit
{
var dbrec = db.Admins.Include("Courses").Where(s => s.ID == rec.ID).FirstOrDefault<Admin>();
dbrec.DisplayName = rec.DisplayName;
var deletedCourses = dbrec.course.Except(rec.course, cours => cours.ID).ToList<Courses>();
}
}
我在這裏面對的問題這行代碼cours => cours.ID
。
錯誤消息
不能轉換lambda表達式類型的IEqualityComparer,因爲它不是一個委託類型
誰能告訴我,爲什麼我得到這個錯誤?
我下面這個教程
你錯用了'Except()'。 'var deletedCourses = dbrec.course.Except(rec.course).ToList();'this get all _except_'rec' –