【问题标题】:Entity Framework - Retrieve different values according to foreign keys实体框架 - 根据外键检索不同的值
【发布时间】:2016-01-25 13:40:55
【问题描述】:

我是 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 从类 Step 中获取“名称”。 我知道我可以做到这一点

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();

但这样我不会检索工作流实体。

我想知道是否可以使用 EF 来“自动”执行类似的操作来检索具有步骤和下一步名称的工作流实体。

我希望这很清楚。

提前致谢

【问题讨论】:

    标签: c# entity-framework linq entity-framework-5 entity-relationship


    【解决方案1】:

    您可以像这样在匿名类型中包含工作流实体:

    select new
    {
        Workflow = Workflow,
        nameStep = Step.name,    
        nameNextStep = nextStep.name
    }
    

    您可能需要考虑对Workflow 实体进行建模,使其具有Step 的两个导航属性。一个用于stepID 外键,一个用于nextStepID 外键。这将使您的查询更简单。看看this question

    【讨论】:

    • 我想过改变我的模型,但是,就像你发布的链接一样,我需要使用 Fluent API,因为我是 EF 的新手,我不习惯使用 Fluent API所以我需要先了解这一点,才能知道如何使用和检索我想要的信息。我稍后再看。谢谢你的帮助!!
    • 只是为了让您知道:使用 fluent API 效果很好! ;)
    猜你喜欢
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 2022-08-21
    • 1970-01-01
    • 2012-06-21
    • 2021-12-20
    • 1970-01-01
    相关资源
    最近更新 更多