【发布时间】:2018-09-03 14:26:26
【问题描述】:
我将首先展示我的案例以解释问题 - 我在 SQL Server 中创建了一个角色和任务架构,如下所示:
我有 2 个主表,Roles 和 Tasks,以及 2 个链接表。
我已经在 C# 中为实体框架类生成了这个模型(使用实体框架生成器),我得到了这些类:
public class Task
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Role> Roles { get; set; }
public virtual ICollection<Task> ChildTask { get; set; }
public virtual ICollection<Task> ParentTask { get; set; }
}
public class Role
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Task> Tasks { get; set; }
}
现在我想获取一个角色的所有任务名称,但我遇到了麻烦,因为任务具有自我层次结构。
我可以使用实体框架而不手动检查每个子/SQL Server 存储过程吗?
谢谢。
【问题讨论】:
-
您能否详细说明“我遇到麻烦”是什么意思?您应该能够通过
Role.Tasks获得角色的任务。你想达到什么目的? -
我正在尝试获取给定角色的所有相关任务名称。因此,例如 Role.Task 会给我直接相关的任务,但相关的任务可以有子任务(Role.Task.ChildTask),而子任务可以有另一个多个子任务(Role.Task.ChildTask.ChildTask),我想要获取任务的所有 Name 属性,例如在给定角色 id 的所有这些层次结构中
-
为什么在这里使用多对多关系?一个任务真的可以有很多父任务和很多角色吗?
-
是的,一个任务可以是多个其他任务的子任务,并且父任务有许多子任务。角色也是一样,可以有多个链接任务,一个任务可以链接多个角色
标签: c# sql-server entity-framework entity-framework-6