Plo*_*mpy 4 c# sql-server entity-framework
我有一个表,我想在其中插入项目而不指定UserID. 我希望自动生成此 ID。
CREATE TABLE [dbo].[UserMaster]
(
[UserID] INT NOT NULL ,
[UserName] VARCHAR (50) NULL,
[UserPassword] VARCHAR (50) NULL,
[UserRoles] VARCHAR (500) NULL,
[UserEmailID] VARCHAR (100) NULL,
PRIMARY KEY CLUSTERED ([UserID] ASC)
);
Run Code Online (Sandbox Code Playgroud)
这里我尝试通过 C# 插入行:
using (LessonesDBEntities context = new LessonesDBEntities())
{
var u = new UserMaster//Make sure you have a table called UserMaster in DB
{
UserName = "test username",
UserPassword = "test password",
UserEmailID = "test email",
UserRoles = "User"
};
context.UserMaster.Add(u);
context.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
但我得到例外:
违反主键约束“PK__tmp_ms_x__1788CCACDB8355D2”。无法在对象“dbo.UserMaster”中插入重复的键。重复的键值为 (0)。该语句已终止。
将属性添加[DatabaseGenerated(DatabaseGeneratedOption.Identity)]到您的身份字段UserId。
public class UserMaster
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string UserPassword { get; set; }
public string UserEmailID { get; set; }
public string UserRoles { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当您基于该模型创建迁移和表时,EF 将创建具有自动增量的标识字段。