通过另一个表从一个表加载数据

时间:2017-07-20 12:57:51

标签: entity-framework asp.net-core asp.net-core-mvc

我正在尝试加载每个工作人员假期记录,但我无法填充假日记录。

以下是我的控制器的代码:

<div>
<h4>Staff</h4>
<hr />
@foreach (var s in Model)
{
    <dl class="dl-horizontal">
        <dt>
            First Name:
        </dt>
        <dd>
            @s.Firstname
        </dd>
        <dt>
            Surname:
        </dt>
        <dd>
            @s.Surname
        </dd>
        <dt>
            Username:
        </dt>
        <dd>
            @s.Username
        </dd>
        @foreach (var hr in s.Hrstaffholidayrecords)
        {

            <dt>
                date:
            </dt>
            <dd>
                @hr.Startdate
            </dd>

        }
    </dl>
}
</div>

这是我视图中的代码:

onsubmit="return validateForm()"

当我目前运行的东西(在.NET Core 1.1上)时,假日记录从数据库中返回0条记录。我不确定我是否遗漏了某些东西,或者我做错了。

谢谢, 伊恩

2 个答案:

答案 0 :(得分:1)

看起来像延迟加载,但不确定,不是那么强大)你应该读一下关于流畅的API

答案 1 :(得分:1)

将控制器代码更改为可以正常工作。

public class HomeController : Controller
{
    private HRModel.db_HRSystemModel db = new HRModel.db_HRSystemModel();

    public IActionResult Index()
    {
        var staff = db.Hrstaffpersonaldetails
                    .Include(s => s.Hrstaffholidayrecords)
                    .Where(s => s.Firstname == "Ian")
                    .ToList();
        return View(staff);
    }
}

这称为急切加载。阅读更多https://docs.microsoft.com/en-us/ef/core/querying/related-data

此外,应该使用DI将db上下文对象注入控制器。阅读更多https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/dependency-injection