<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/SiteControl.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<Website.SimpleRepository.Page>>" %>
<asp:Content ID="Content2" ContentPlaceHolderID="content" runat="server">
<h2>Page List</h2>
<p>
<%= Html.ActionLink("Create New", "Create") %>
</p>
<table>
<tr>
<th></th>
<th>
Display As
</th>
<th>
Layout
</th>
</tr>
<% foreach (var item in Model) { %>
<tr>
<td>
<%= Html.Encode(item.DisplayAs) %>
</td>
<td>
<%= Html.Encode(item.Types.Name) %>
</td>
</tr>
<% } %>
</table>
</asp:Content>
我很难访问item.Types.Name它返回一个空异常。我将我的实体数据模型放在一个单独的类库中。任何人都可以解释为什么它返回一个null异常以及我可以做些什么来解决这个问题?我已经看到其他项目引用相关的表值,但无法解决为什么我的工作不同......
有关此主题的任何信息都会很棒!感谢。
答案 0 :(得分:0)
确保实体映射中的外键关系允许延迟加载或这些引用属性。
答案 1 :(得分:0)
您如何查询数据?
我发现当前的EF设置要求我使用魔术字符串比我想要的更明确:
public IEnumerable<Item> GetItems(){
ObjectQuery<Item> items = ItemSet.Include("Types");
return (from i in items
where [...]
select i);
}
这当然不会让你对foriegn键进行编译时检查,但它现在至少会返回它们。
答案 2 :(得分:0)
原来我是一个像我预期的新手。我的问题的解决方案是我没有将关联表传递给视图。谢谢你的回答!