C# MVC,不处理Entities对象以便您可以使用它来深入研究外键值是否是一种不好的做法?
我是MVC新手。 在我看过的教程中,他们说,在实体对象传递到视图后处理它是一种很好的做法。就像这样C# MVC,不处理Entities对象以便您可以使用它来深入研究外键值是否是一种不好的做法?,c#,entity-framework,asp.net-mvc-2,C#,Entity Framework,Asp.net Mvc 2,我是MVC新手。 在我看过的教程中,他们说,在实体对象传递到视图后处理它是一种很好的做法。就像这样 using(MyProjectEntities db = new MyProjectEntities) { return View(db.PersonAddresses.ToList()); } 但是,我不想只显示Person的ID和PersonalAddress表中链接的地址记录。我想要整个shebang,当我在我的视图中执行以下操作时,我会得到一个错误 <% foreach (
using(MyProjectEntities db = new MyProjectEntities)
{
return View(db.PersonAddresses.ToList());
}
但是,我不想只显示Person的ID和PersonalAddress表中链接的地址记录。我想要整个shebang,当我在我的视图中执行以下操作时,我会得到一个错误
<% foreach (var item in Model) { %>
<tr>
<td>
<%: item.Person.LastName + ", " + item.Person.FirstName %>
</td>
<td>
<%: item.Address.AddressLine1+ "<br />" + item.Address.AddressLine2 %>
</td>
<td>
<%: item.Room.RoomName %>
</td>
<td>
<%: String.Format("{0:g}", item.Date) %>
</td>
</tr>
<% } %>
我的观点很好
是否有更好的方法将这些值传递给视图,以便我可以正确处理Entities对象?最好不要直接从控制器访问数据层。我将创建一个单独的业务逻辑层或服务层,并从控制器调用它,而不是从控制器调用数据访问层。因此,用户界面层不会直接访问数据访问层。这个问题将是没有意义的。一种方法是通过在LINQ查询中添加数据来“急切地”加载数据,这将预加载指定的数据,以便它准备就绪。感谢您的提示!我的技能还没有完全准备好迈出这一步。在开始使用真正的业务层之前,我正在尝试掌握设置常用控件(如下拉列表和日历)的基础知识。哇,这太棒了,我不知道我能做到!很高兴为您提供一些信息,很高兴知道如何使用EF和延迟加载
MyProjectEntities db = new MyProjectEntities;
return View(db.PersonAddresses.ToList());