Entity Framework - 根据外键取不同的值
Entity Framework - Retrieve different values according to foreign keys
我是 EF 新手,遇到过这种情况:
类:
public class Step
{
public int ID { get; set; }
public string name { get; set; }
}
public class Workflow
{
public int ID { get; set; }
public int stepID { get; set; }
public int nextStepID { get; set; }
public virtual Step Step
}
我想知道的是,是否有办法根据 stepID 和 nextStepID 从 class Step 中获取 "name"。
我知道我能做到
var result = (from Workflow in db.Workflow
join Step in db.Step on Workflow.stepID equals Step.ID
join nextStep in db.Step on Workflow.nextStepID equals nextStep.ID
select new
{
nameStep = Step.name,
nameNextStep = nextStep.name
}
).ToList();
但这样我就不会检索工作流实体。
我想知道是否可以 "automatically" 使用 EF 检索具有“步骤”和“下一步”名称的工作流实体。
我希望这很清楚。
提前致谢
您可以像这样在匿名类型中包含 WorkFlow 实体:
select new
{
Workflow = Workflow,
nameStep = Step.name,
nameNextStep = nextStep.name
}
您可能要考虑以这样的方式对 Workflow
实体建模,使其具有两个 Step
的导航属性。一个用于 stepID
外键,一个用于 nextStepID
外键。这将使您的查询更简单。看看this question.
我是 EF 新手,遇到过这种情况: 类:
public class Step
{
public int ID { get; set; }
public string name { get; set; }
}
public class Workflow
{
public int ID { get; set; }
public int stepID { get; set; }
public int nextStepID { get; set; }
public virtual Step Step
}
我想知道的是,是否有办法根据 stepID 和 nextStepID 从 class Step 中获取 "name"。 我知道我能做到
var result = (from Workflow in db.Workflow
join Step in db.Step on Workflow.stepID equals Step.ID
join nextStep in db.Step on Workflow.nextStepID equals nextStep.ID
select new
{
nameStep = Step.name,
nameNextStep = nextStep.name
}
).ToList();
但这样我就不会检索工作流实体。
我想知道是否可以 "automatically" 使用 EF 检索具有“步骤”和“下一步”名称的工作流实体。
我希望这很清楚。
提前致谢
您可以像这样在匿名类型中包含 WorkFlow 实体:
select new
{
Workflow = Workflow,
nameStep = Step.name,
nameNextStep = nextStep.name
}
您可能要考虑以这样的方式对 Workflow
实体建模,使其具有两个 Step
的导航属性。一个用于 stepID
外键,一个用于 nextStepID
外键。这将使您的查询更简单。看看this question.