Как вставить значение в свойство навигации в entity framework
у меня есть ниже модель:
public class Book { [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int BookID { get; set; } public string bookName { get; set; } public string bookAuthor { get; set; } public string bookTranslator { get; set; } public DateTime registerDate { get; set; } public virtual ICollection<Category> Category { get; set; } } public class Category { public int CategoryId { get; set; } [StringLength(50)] public string categoryName { get; set; } [DataType(DataType.Text)] public string categoryDescription { get; set; } public virtual ICollection<Book> Books { get; set; } }
теперь я хочу добавить категорию в свою книгу
в контроллерах:
int catID = int.Parse(form["ddlCat"]); IEnumerable<Category> _cats = db.Categories.Where(x => x.CategoryId == catID); book.Category.Add(_cats.FirstOrDefault()); db.Books.Add(book); db.SaveChanges();
и в поле зрения:
<div class="form-group"> <label class="control-label col-md-2" for="DepartmentID">Cats</label> <div class="col-md-10"> @Html.DropDownList("ddlCat",new SelectList(ViewBag.Category,"Value","Text")) @Html.ValidationMessageFor(model => model.Category) </div> </div>
Что я уже пробовал:
я пытаюсь добавить выбранную пользователем категорию, но это дает мне ошибку в следующей строке
book.Category.Add(_cats.FirstOrDefault());
Ссылка на объект не установлена на экземпляр объекта.