Выдаёт ошибку (System.Data.Entity.ModelConfiguration.ModelValidationException) ASP.NET MVC5

159
22 апреля 2018, 21:06

Проблемам в следующем. Выдаёт ошибку:

System.Data.Entity.ModelConfiguration.ModelValidationException: "One or more validation errors were detected during model generation:

BookingAppStore.Models.Purchase: : EntityType 'Purchase' has no key defined. Define the key for this EntityType. Purchases: EntityType: EntitySet 'Purchases' is based on type 'Purchase' that has no keys defined.

В index он ругается на эту часть:

    @foreach (var b in ViewBag.Books)
                {
                    <tr>
                        <td><p>@b.Name</p></td>
                        <td><p>@b.Author</p></td>
                        <td><p>@b.Price</p></td>
                        <td><p><a href="/Home/Buy/@b.Id">Купить</a></p></td>
                    </tr>
                }
   // вот класс Purchase
   public class Purchase
    {
        public int ParchaseId { set; get; }
        public string Persone { set; get; }
        public string Address { set; get; }
        public int BookId { set; get; }
        public DateTime Data { set; get; }
    }
 //==============================================================
    public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }
//==============================================================
public class HomeController : Controller
    {
        // создаем контекст данных
        BookContext db = new BookContext();
        public ActionResult Index()
        {
            // получаем из бд все объекты Book
            IEnumerable<Book> books = db.Books;
            // передаем все объекты в динамическое свойство Books в ViewBag
            ViewBag.Books = books;
            // возвращаем представление
            return View();
        }
        [HttpGet]
        public ActionResult Buy(int id)
        {
            ViewBag.BookId = id;
            return View();
        }
        [HttpPost]
        public string Buy(Purchase purchase)
        {
            purchase.Data = DateTime.Now;
            // добавляем информацию о покупке в базу данных
            db.Purchases.Add(purchase);
            // сохраняем в бд все изменения
            db.SaveChanges();
            return "Спасибо," + purchase.Persone + ", за покупку!";
        }

Думаю что ошибка в методе RegisterRoutes а, где именно не могу понять так как первый проект на ASP.NET MVC 5 и ещё не знаю всех тонкостей.

READ ALSO
Обращение к элементам массива из словарей. Десериализация Json строки

Обращение к элементам массива из словарей. Десериализация Json строки

В общем, дело обстоит так: нужно получать данные о карте игры с сервераСервер возвращает JSON- строку, в которой есть массив из словарей

202
JsonIgnore проблема

JsonIgnore проблема

Есть класс:

202
Оповещения в чат боте

Оповещения в чат боте

Как реализовать идею бота оповещений на C# для Telegram? У нас есть метод Bot_OnMessage, который вызывается всегда, когда бот получает сообщениеВопрос:...

159
Анимация Opacity для DropShadowEffect

Анимация Opacity для DropShadowEffect

В XAML-коде имеется такой элемент border с DropShadowEffect:

176