在尝试保存时,为什么新创建的EF实体抛出ID为null异常?

ric*_*den 2 c# entity-framework visual-studio-2010

我正在尝试包含在VS2010中的实体框架,但是我的数据库/模型从图形界面生成了问题.

当我做:

user = dataset.UserSet.CreateObject();
user.Id = Guid.NewGuid();
dataset.UserSet.AddObject(user);
dataset.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

{"无法将值NULL插入列'Id',表'BarSoc2.dbo.UserSet';列不允许空值.INSERT失败.\ r \n语句已终止."}

我插入的表看起来像这样:

-- Creating table 'UserSet'
CREATE TABLE [dbo].[UserSet] (
    [Id] uniqueidentifier  NOT NULL,
    [Name] nvarchar(max)  NOT NULL,
    [Username] nvarchar(max)  NOT NULL,
    [Password] nvarchar(max)  NOT NULL
);
GO

-- Creating primary key on [Id] in table 'UserSet'
ALTER TABLE [dbo].[UserSet]
ADD CONSTRAINT [PK_UserSet]
    PRIMARY KEY CLUSTERED ([Id] ASC);
GO
Run Code Online (Sandbox Code Playgroud)

我是以错误的方式创建对象还是做其他基本错误的事情?

小智 8

在定义为键的字段的模型上,添加以下属性.此密钥在数据库中未标记为IDENTITY,实体框架给出了异常

[Key]
[Display(Name = "Id")]     
[DatabaseGenerated(System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.None)]
public int Id { get; set; }
Run Code Online (Sandbox Code Playgroud)