c# - 为什么 Entity Framework 不让 SQL Server 生成主键?

标签 c# sql-server database entity-framework-4

我很确定这是一个简单的配置错误,但我缺乏经验,无法修复它。基本上我想使用 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 列属性:

enter image description here

我不知道为什么表中已经有 4 名员工时主键总是生成为 0。 (0,1,2,3)。

最佳答案

如果您必须手动更改模型的属性,很可能您没有将该列设置为数据库本身的 Identity 列。

如果您已将数据库设置为标识列,则删除该实体并重新添加它。

关于c# - 为什么 Entity Framework 不让 SQL Server 生成主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10235818/

相关文章:

c# - Anchor onclick 不应该重新加载页面而是触发 javascript?

mysql - select 语句引起的数据库死锁

java - hibernate 批处理 : Stateless Session VS Regular Session Native Query

c# - 如何以像素增量滚动 DataGridView

c# - ASP.NET IIS 用户角色认证

c# - Lambda 表达式与匿名方法

c# - 使用 SqlCommand Async 方法处理大数据时性能糟糕

sql-server - 有没有办法将两个矩阵的值相加以获得 'grand total' ?

c# - ASP.NET 2.0-4.0 Web 应用程序的初始启动速度极慢。

ios - 如何处理 sql server 数据库中的 iOS 表情符号?