我很确定这是一个简单的配置错误,但我缺乏经验,无法修复它。基本上我想使用 Entity Framework 将 EMPLOYEE
添加到表中。
这是我的方法:
public void createEmployee(CreateEmployeeModel model)
{
EMPLOYEE emp = new EMPLOYEE() {
emp_name = model.Name,
emp_email = model.Email,
emp_cell_phone = model.CellPhone,
emp_adr = model.Address
};
_db.AddToEMPLOYEES(emp);
_db.SaveChanges();
}
我在 _db.SaveChanges();
调用中收到以下错误:无法在具有唯一索引“R18_SDE_ROWID_UK”的对象“dbo.EMPLOYEES”中插入重复的键行。重复的键值为 (0)。
以下是 EMPLOYEE 实体的 emp_id
列属性:
StoreGeneratedPattern : Identity
Concurrency Mode : None
Default Value : (None)
Entity Key : True
Name: emp_id
Nullable: False
Type : Int32
以下是 SQL Server 上 EMPLOYEES 表的 emp_id
列属性:
我不知道为什么表中已经有 4 名员工时主键总是生成为 0。 (0,1,2,3)。
最佳答案
如果您必须手动更改模型的属性,很可能您没有将该列设置为数据库本身的 Identity 列。
如果您已将数据库设置为标识列,则删除该实体并重新添加它。
关于c# - 为什么 Entity Framework 不让 SQL Server 生成主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10235818/