我的任务是做一个任务跟踪器的家庭作业。我想学习这个赋值的实体框架,特别是如何使用继承方面。项目,任务和子任务都有很多类似的属性,所以我认为我会使用继承,但无法弄清楚如何查询特定的项目。
我在Visual Studio中绘制了这个图:
然后我从这个模型创建了数据库。我如何获得员工项目?
我从这开始:
ModelContainer m = new ModelContainer();
var employee = (from e in m.Employees
where e.UserName == username
select e).First<Employee>();
但((Employee)employee).Projects
不可用,但((Employee)employee).Items
是。{1}}。 ((Employee)employee).Items.Projects
也不可用。我如何获得员工的项目?我应该为员工添加导航属性吗?
答案 0 :(得分:4)
您必须使用Queryable.OfType(TResult) extension method才能过滤Manager类型的实体:
using (var model = new ModelContainer())
{
Manager manager = (from m in model.Employees.OfType<Manager>()
where m.UserName == username
select m).FirstOrDefault();
}
相关资源: