实体框架模型从另一个模型访问实体

时间:2019-05-29 06:33:01

标签: c# asp.net asp.net-mvc model-view-controller

我有一个MyQueueService的模型,我不知道如何在我的ServiceLetter模型上正确获取Services以便在视图中呈现它。

这是我的MyQueue模型。

public class MyQueue
{
    public int MyQueueId { get; set; }

    public string Name { get; set; }

    public string QueueNumber
    {
        get
        {


     return string.Format("{0}{1:000}", ServiceLetter ?? "?", MyQueueId);
        }
        set { }
    }

    public int ServiceId { get; set; }

    public string ServiceLetter { get; set; }

    public virtual Service Service { get; set; }
}

这是我的Service模型

public class Service
{
    public int ServiceId { get; set; }

    public string ServiceName { get; set; }

    public string ServiceLetter { get; set; }
}

在我的dbo.MyQueues中,我的ServiceLetter数据仅显示数字,我需要它成为我在Service上写下的字母

我希望我的MyQueue像这样,ServiceLetter是字母,而不是数字,

MyQueueId-名称-队列编号-ServiceId-ServiceLetter

  • 1-JohnDoe-A001-1- A
  • 2-DoeJogn-B002-2- B
  • 3-JognDog-C002-3- C

2 个答案:

答案 0 :(得分:0)

这很可能是因为您仅查找MyQueues数据。您需要获取适当的服务模型。

在使用Entityframework与数据库接口时,需要使用Include函数。参见:https://docs.microsoft.com/en-us/ef/ef6/querying/related-data

也请看一下join。底部的示例似乎很好地解释了https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/join-clause

答案 1 :(得分:0)

您需要在“ MyQueue”中将ServiceId创建为外键。当您访问“ dbo.MyQueues”时,请加入“服务”

dbo.MyQueues.Include(q => q.Service);