2011-10-29 14 views
0

このプラットフォームを初めて使用しています。だから、私はすべての専門用語で親しまれていません。
私は、エラーメッセージが出てい:Entity Framework、.NET4、MVC3に関連するエラー

含める指定したパスは有効ではありません。 EntityType 'ERP.Models.OpeningBalance'は 'AccountHeadId'という名前のナビゲーションプロパティを宣言しません。

ここで私は

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.ComponentModel.DataAnnotations; 

namespace ERP.Models.Account 
{ 
    public class OpeningBalance 
    { 

     [Key] 
     public int OpenningBalanceId { get; set; } 

     [Required(ErrorMessage = "The {0} cannot be left blank.")] 
     [Display(Name = "Openning Balance Date")] 
     [DataType(DataType.Date)] 
     [DisplayFormat(NullDisplayText = "", DataFormatString = "{0:dd-MM-yyyy}")] 
     public DateTime OpenningBalanceDate { get; set; } 

     [Required] 
     [StringLength(100, ErrorMessage = "The {0} cannot be left blank.")] 
     [Display(Name = "AccountHeadId")] 
     public int AccountHeadId { get; set; } 
     public virtual ChartOfAccount ChartOfAccount { get; set; } 


    } 
} 

プロジェクト 'ERP' でモデルクラスのOpeningBalance」を得たpublic int AccountHeadId { get; set; }ない名前を持つナビゲーションプロパティ

は 'AccountHeadId'


ソースエラーがコントローラから行を示しています

var openingBalances = db.OpeningBalances.Include(o => o.AccountHeadId); 
    return View(openingBalances.ToList()); 

私は、次のフォームを試してみました、stackoverflowの中のすべての関連QUESを含むウェブで多くのことを検索:

var openingBalances = from o in db.OpeningBalances.Include(o=>o.AccountHeadId) select o; 
return View(openingBalances.ToList()); 

しなかったこと仕事も。誰もが考えている?

答えて

1

プロパティはナビゲーションプロパティではありません。ナビゲーションプロパティは、ChartOfAccountなどの別のエンティティ、またはICollection<ChartOfAccount>などのエンティティコレクションである必要があります。

スカラープロパティAccountHeadIdがナビゲーションプロパティChartOfAccountに関連付けられている場合は、ChartOfAccountをクエリに含めます。あなたは、データベースへの複数のラウンドトリップを回避するために熱心に負荷関連企業にIncludeメソッドを使用し

var openingBalances = db.OpeningBalances.Include(o => o.ChartOfAccount); 

。このようなプロパティを含むエンティティを取得すると、常にAccountHeadIdのようなプリミティブプロパティが読み込まれます。

関連する問題