【问题标题】:Entity Framework - Querying Inheritance实体框架 - 查询继承
【发布时间】:2011-05-18 04:49:29
【问题描述】:

我的任务是做一个任务跟踪器。我想学习这个作业的实体框架,特别是如何使用继承方面。项目、任务和子任务都有很多相似的属性,所以我想我会使用继承,但不知道如何查询特定的项目。

我在 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 可用。 ((Employee)employee).Items.Projects 也不可用。我如何获得员工的项目?我应该为此向员工添加一个导航属性吗?

【问题讨论】:

    标签: .net entity-framework inheritance navigation-properties


    【解决方案1】:

    您必须使用 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();
    }
    

    相关资源:

    【讨论】:

      猜你喜欢
      • 2011-05-19
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-08
      相关资源
      最近更新 更多