C# 如何使用存储库模式的即时加载?

C# 如何使用存储库模式的即时加载?,c#,asp.net-mvc,repository-pattern,eager-loading,C#,Asp.net Mvc,Repository Pattern,Eager Loading,我正在尝试清理我在应用程序中访问数据的方式。我已经开始转向响应模式,我遇到的第一个问题是访问相关数据 经过一些研究,我发现您可以使用.Include()访问相关数据,但我似乎无法让它正常工作,也无法确定我的设置方式是否正确 如何在存储库模式中使用即时加载?我已经包含了我的代码,向您展示了我如何制定计划的路线图。为了使事情简短,我省略了某些项目 IRepository.cs public interface ICustomerRepository : IDisposable { IEnum

我正在尝试清理我在应用程序中访问数据的方式。我已经开始转向响应模式,我遇到的第一个问题是访问相关数据

经过一些研究,我发现您可以使用.Include()访问相关数据,但我似乎无法让它正常工作,也无法确定我的设置方式是否正确

如何在存储库模式中使用即时加载?我已经包含了我的代码,向您展示了我如何制定计划的路线图。为了使事情简短,我省略了某些项目

IRepository.cs

public interface ICustomerRepository : IDisposable
{
    IEnumerable<customer> GetRelatedData();          
}
索引视图 我现在需要显示数据,但我仍停留在这个阶段,因为我不确定如何在视图中显示相关数据

@model IEnumerable<Titan.Models.customer>
@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.first_name)
        </th>    
    </tr>  
@foreach (var item in Model) {
<tr>

    <td>
        @Html.DisplayFor(modelItem => item.first_name)
    </td>       
</tr>
}

 </table>
@model IEnumerable
@{
ViewBag.Title=“Index”;
}
指数

@ActionLink(“新建”、“创建”)

@DisplayNameFor(model=>model.first\u name) @foreach(模型中的var项目){ @DisplayFor(modelItem=>item.first\u name) }

这可能是因为我的方法不正确。我从ASP.NET MVC教程中获得了指导,但我无法理解如何在存储库模式中实现这种急切的加载场景。非常感谢您的帮助。

您应该在customer object中设置customer car collection

大概是这样的:

@foreach (var item in Model) {
<tr>
   @foreach(var car in item.customer_cars){
  <td>
     @Html.DisplayFor(car => car.model)
  </td>       
 }
</tr>
}
@foreach(模型中的变量项){
@foreach(项目中的var车辆。客户车){
@DisplayFor(car=>car.model)
}
}

我已经读了两遍了,我仍然不确定你在问什么。你是在问如何获得子customer_cars对象吗?我在问两件事:a)我使用存储库模式中的即时加载获取相关数据的方法是否正确?和b)如果是,我如何将“customers\u car”对象放入我的视图中,以便显示此相关数据?请发布“customer”类的代码
@model IEnumerable<Titan.Models.customer>
@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.first_name)
        </th>    
    </tr>  
@foreach (var item in Model) {
<tr>

    <td>
        @Html.DisplayFor(modelItem => item.first_name)
    </td>       
</tr>
}

 </table>
@foreach (var item in Model) {
<tr>
   @foreach(var car in item.customer_cars){
  <td>
     @Html.DisplayFor(car => car.model)
  </td>       
 }
</tr>
}