Может ли кто-нибудь предложить причину следующей проблемы? Мой код разбивается на линииИсключительное исключение ссылки на навигационное свойство
integerList.Integers.Add(integer);
с сообщением об ошибке
Object reference not set to an instance of an object.
IntegerList.Integers является недействительным, который я подозреваю, что является причиной, а что такое решение? Должен ли я устанавливать значения IntegerList.Integers при инициализации переменной, чтобы она никогда не была нулевой?
Модели
public class IntegerList
{
public int IntegerListID { get; set; }
public string Direction { get; set; }
public long Performance { get; set; }
public virtual ICollection<Integer> Integers { get; set; }
}
public class Integer
{
public int IntegerID { get; set; }
public int IntegerValue { get; set; }
public int IntegerListID { get; set; }
public virtual IntegerList IntegerList { get; set; }
}
ViewModel
public class IntegerViewModel
{
[UIHint("Integers")]
public IntegerValueViewModel IntegerValues { get; set; }
public string Direction { get; set; }
}
public class IntegerValueViewModel
{
public ICollection<int> IntegerValue { get; set; }
}
Контроллер
[HttpPost]
public ActionResult Index(IntegerViewModel integerViewModel)
{
if (ModelState.IsValid)
{
var integerList = new IntegerList
{
Direction = integerViewModel.Direction
};
foreach (var item in integerViewModel.IntegerValues.IntegerValue)
{
var integer = new Integer { IntegerValue = item };
integerList.Integers.Add(integer);
}
Практически все случаи исключения NullReferenceException одинаковы. См. «[Что такое исключение NullReferenceException в .NET?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net)» для некоторых советов. –