在asp.net mvc 项目中新创建实体EF后在读取时遇到的一个问题:
One or more validation errors were detected during model generation:
SportsStore.Domain.Concrete.User: : EntityType 'User' has no key defined. Define the key for this EntityType.
Users: EntityType: EntitySet 'Users' is based on type 'User' that has no keys defined.
从语句上看是说没有key的定义,也就是说你的数据库中设置的主键你没有在实体中定义或者是你的这个表中没有主键;
若没有定义主键,将主键在类中定义即可;
若数据库表中没有主键,也有一种解决办法,就是给定义的类中定义一个假的主键:
public class User
{
//[Key]
public int id { get; set; }
public string username { get; set; }
public string password { get; set; }
public int limit { get; set; }
public DateTime time { get; set; }
}
比如上面的类中,如果没有主键id的定义,可以选择下面任意一个属性添加一个[Key]的定义:
此时需要using System.ComponentModel.DataAnnotations;
public class User
{
[Key]
public string username { get; set; }
public string password { get; set; }
public int limit { get; set; }
public DateTime time { get; set; }
}
本文遇到的问题已解决。