How to fix "One or more validation errors were detected during model generation"-error

asp.net asp.net-mvc c# entity-framework linq

Question

One or more validation errors were detected during model generation:

SportsStore.Domain.Concrete.shop_Products: : EntityType 'shop_Products' has no key defined. Define the key for this EntityType.

Products: EntityType: EntitySet 'Products' is based on type 'shop_Products' that has no keys defined.

 public ViewResult Index()
    {

        ProductsListViewModel viewModel = new ProductsListViewModel
        {
            Products = repository.Products
                .Where(p => p.CategoryId == 100)
                .OrderByDescending(p=>p.ProductID)
                .Take(5)
        };
        return View(viewModel);
    }


@foreach (var p in Model.Products)
{

<a href="">@p.ProductName</a>
}


public class shop_Products {
    public int ProductID { get; set; }
    public string ProductName { get; set; }
    public int CategoryId { get; set; }
    public Nullable<int> CategoryPropertyId { get; set; }
    public string PropertyValue { get; set; }
    public Nullable<int> ProductBrandId { get; set; }
    public Nullable<decimal> MarketPrice { get; set; }
    public decimal Price { get; set; }
    public Nullable<decimal> UserPrice { get; set; }
    public string TitleKeyword { get; set; }
    public string MetaKeyword { get; set; }
    public string MetaDescription { get; set; }
    public string PhotoName { get; set; }
    public string PhotoPath { get; set; }
    public string smallPhotos { get; set; }
    public string BigPhotos { get; set; }
    public string URL { get; set; }
    public double Discount { get; set; }
    public int Inventory { get; set; }
    public string ShortDesc { get; set; }
    public bool IsAccessories { get; set; }
    public bool IsGroup { get; set; }
    public bool IsTopService { get; set; }
    public string Accessorices { get; set; }
    public string PeopleGroup { get; set; }
    public string TopService { get; set; }
    public string Contents { get; set; }
    public string Parameter { get; set; }
    public string PackingList { get; set; }
    public string Service { get; set; }
    public string Professional { get; set; }
    public bool IsParameter { get; set; }
    public bool IsPackingList { get; set; }
    public bool IsService { get; set; }
    public bool IsProfessional { get; set; }
    public Nullable<bool> IsEnable { get; set; }
    public Nullable<bool> IsCommend { get; set; }
    public Nullable<bool> IsTop { get; set; }
    public Nullable<bool> IsBest { get; set; }
    public string ProductBrandType { get; set; }
    public string Manufacturer { get; set; }
    public string Makein { get; set; }
    public string weight { get; set; }
    public System.DateTime InputTime { get; set; }
    public Nullable<int> Sort { get; set; }
    public Nullable<int> SeeCount { get; set; }
}

I made a few of these,and works well.But these is wrong.Can anybody help me?

1
5
11/20/2014 3:45:11 PM

Accepted Answer

The Model class should be changed to :

using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;

namespace MvcApplication1.Models
{
    [Table("studentdetails")]
    public class student
    {
        [Key]
        public int RollNo { get; set; }

        public string Name { get; set; }

        public string Stream { get; set; }

        public string Div { get; set; }
    }
}
166
12/1/2013 4:36:34 PM

Popular Answer

  1. Make sure public members of student class are defined as properties w/ {get; set;} (yours are public variables - a common mistake).

  2. Place a [Key] annotation on top of your chosen property.



Related Questions





Related

Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow