我是这个平台的新手。所以,我对所有术语都不熟悉 我收到错误消息:
指定的包含路径无效。 EntityType'ERP.Models.OpeningBalance'不会声明名为'AccountHeadId'的导航属性。
我在项目'ERP'
中获得了Model类'OpeningBalance'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; }
}
}
public int AccountHeadId { get; set; }
不是
名为“AccountHeadId”的导航属性
?
源错误显示来自控制器的行:
var openingBalances = db.OpeningBalances.Include(o => o.AccountHeadId);
return View(openingBalances.ToList());
我在网上搜索了很多,包括stackoverflow中的所有相关问题,然后尝试了以下表格:
var openingBalances = from o in db.OpeningBalances.Include(o=>o.AccountHeadId) select o;
return View(openingBalances.ToList());
这也行不通。有人有任何想法吗?
答案 0 :(得分:1)
AccountHeadId
属性不是导航属性。导航属性应该是另一个实体的类型,例如ChartOfAccount
或实体集合,例如ICollection<ChartOfAccount>
。
如果标量属性AccountHeadId
与导航属性ChartOfAccount
相关联,则在查询中包含ChartOfAccount
。
var openingBalances = db.OpeningBalances.Include(o => o.ChartOfAccount);
您使用Include
方法来加载相关实体,以避免多次往返数据库。当您检索包含此类属性的实体时,将始终加载诸如AccountHeadId
之类的原始属性。