2009-05-18 13 views
2
<%@ 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例外を返す理由と私はこれを修正するために何ができるのか説明できますか?関連するテーブルの値を参照する他のプロジェクトを見たことがありますが、私の仕事が異なる理由を理解できません...Asp.net MVCとEntity Frameworkで、関連するテーブルにアクセスできない

この件に関する情報はすばらしくなります!ありがとう。

+1

コントローラアクションでコードを送信してください。 –

答えて

0

どのようにデータをクエリしていますか?

私は現在EFのセットアップは、私が希望よりも、魔法の文字列をより明確にするために私を必要とすることを見つけた:もちろん

public IEnumerable<Item> GetItems(){ 
    ObjectQuery<Item> items = ItemSet.Include("Types"); 

    return (from i in items 
      where [...] 
      select i); 
} 

これは、あなたがforiegnキーの時間チェックをコンパイル与えるものではありませんしかし、少なくとも今はそれらを返すでしょう。

0

エンティティマッピングの外部キー関係が遅延ロードまたはこれらの参照プロパティを許可していることを確認してください。

0

私は期待したように全部の初心者です。私の問題に対する解決策は、関連するテーブルをビューに渡していないということでした。あなたの答えをありがとう!

関連する問題