use*_*775 5 c# linq asp.net asp.net-mvc entity-framework
在模型生成期间检测到一个或多个验证错误:
SportsStore.Domain.Concrete.shop_Products :: EntityType'shop __Products'没有定义键.定义此EntityType的键.
产品:EntityType:EntitySet'Products'基于类型'shop_Products',没有定义键.
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; }
}
Run Code Online (Sandbox Code Playgroud)
我做了一些,并且运作良好.但这些都是错的.任何人都可以帮助我吗?
Cal*_*ass 15
按照惯例,EF使用字段Id或[type name]Id主键.请参阅此处:http://msdn.microsoft.com/en-us/library/system.data.entity.modelconfiguration.conventions.idkeydiscoveryconvention%28v=vs.103%29.aspx
您的类型已命名shop_Products但您将键设置为ProductID(假设)的事实意味着它无法按惯例找到它.因此,您可以更改字段名称或类型名称,也可以添加[Key]上面的数据注释,ProductID如下所示:
[Key]
public int ProductID { get; set; }
Run Code Online (Sandbox Code Playgroud)