Ошибка, связанная с Entity Framework, .NET4, MVC3 - PullRequest
0 голосов
/ 29 октября 2011

Я новичок в этой платформе.Итак, я не знаком со всеми терминологиями.
Я получаю сообщение об ошибке:

Указанный путь включения недействителен.EntityType «ERP.Models.OpeningBalance» не объявляет свойство навигации с именем «AccountHeadId».

Здесь я получил класс модели «OpeningBalance» в проекте «ERP»

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());

Это неработать тоже.У кого-нибудь есть идеи?

1 Ответ

1 голос
/ 29 октября 2011

Свойство AccountHeadId не является навигационным свойством.Навигационное свойство должно иметь тип другой сущности, такой как ChartOfAccount, или коллекцию сущностей, такую ​​как ICollection<ChartOfAccount>.

Если скалярное свойство AccountHeadId связано с навигационным свойством ChartOfAccount, то включите ChartOfAccountв вашем запросе.

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

Вы используете метод Include, чтобы загружать связанные объекты, чтобы избежать многократных обращений к базе данных.Примитивные свойства, такие как AccountHeadId, будут загружаться всегда, когда вы извлекаете объект, содержащий такие свойства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...