ASP.NET MVC - 属性或索引器不能在此上下文中使用,因为它缺少get访问器

时间:2017-10-06 16:47:42

标签: asp.net-mvc

请问为什么我在存储库中出现此错误

  

错误18属性或索引器'BPP.CCSP.Admin.Infrastructure.STATES.COUNTRY_ID'不能在此上下文中使用,因为它缺少get访问器

模型

    public int STATE_ID { get; set; }
    public Nullable<int> COUNTRY_ID { internal get; set; }
    public string STATE_NAME { get; set; }

存储库

    public class AdminManager : IAdminManager
{
    private readonly IRepository<STATES> _statesRepository;

    public AdminManager(IRepository<PRB> prbsRepository, IRepository<OPTIONS> optionRepository, IRepository<COUNTRIES> countriesRepository, IRepository<STATES> statesRepository, IRepository<CITIES> citiesRepository)
    {
        _statesRepository = statesRepository;
    }


    public SelectList stateList()
    {
        var countryId = _statesRepository.FindAll().Where(c => c.COUNTRY_ID == 1);
        var listStates = countryId.Select(c => new System.Web.Mvc.SelectListItem { Value = c.COUNTRY_ID.ToString(), Text = c.STATE_NAME }).OrderBy(c => c.Text).ToList();
        var listCount = new SelectList(listStates, "value", "text");
        return listCount;
    }
}

请如何解决。

1 个答案:

答案 0 :(得分:1)

更改

public Nullable<int> COUNTRY_ID { internal get; set; }

public Nullable<int> COUNTRY_ID { get; set; }

请注意,内部用于装配范围。您的存储库(我猜是)在与定义模型的项目不同的项目中。另一个项目将创建一个不同的程序集,因此internal get将不允许repo访问此属性。