FirstOrDefault 始终将外键返回为 null

问题描述 投票:0回答:1

我正在使用 Entity Framework Core 构建一个 Web 应用程序。

我有一个带有属性的视图模型:

Public IEnumerable<AppointmentDTO> Appointments 

Appointment
有外键
DoctorId

现在在我使用视图模型的视图中,我有:

@foreach (var doc in Model.Doctors)
{
    var appointment = Model.Appointments?.FirstOrDefault(a => a.DoctorId == doc.Id);
}

问题是,对于所有约会,所有

DoctorId
都会返回为
null
,即使不是。

有人知道问题出在哪里吗?

预约模式

public int? DoctorId { get; set; }
public Doctor Doctor { get; set; }

医生模型

public List<Appointment>? Appointments { get; set; }

我认为这可能是因为

doctorId
可以为空,所以我将其设为必需,但这也不起作用。

c# asp.net asp.net-mvc entity-framework-core
1个回答
0
投票

公共课 AppointmentDTO { 公共整数?文档 ID { 获取;放; }

  public Doctor Doctor { get; set; }

视图模型:

公共类CalendarViewModel { 公共 IEnumerable?医生{得到;放; }

    public IEnumerable<AppointmentDTO>? Appointments { get; set; }

查看:

@model ClinicaApp.ViewModels.CalendarViewModel

@{ var selectedSections = ViewData["SelectedSections"] as List; }

<div class="paging">
    <a href="#" class="previous" onclick="updateDate(-1)" id="arrow">&laquo; Previous</a>
    <input class="date" type="text" value="" id="flexCheckDefault">

    <a href="#" class="next" onclick="updateDate(1)" id="arrow">Next &raquo;</a>
</div>


@if (Model.Doctors != null)
{
    @foreach (var doc in Model.Doctors)
    {
        // var appointment = Model.Appointments?.FirstOrDefault( a => a.DoctorId ==1 );
        var appointment = Model.Appointments?.FirstOrDefault(a => a.DoctorId == 1);
        if (appointment != null)
            Console.WriteLine("true");
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.