我正在试用 VS2010 中包含的 Entity Framework ,但我遇到了从图形界面生成的数据库/模型的问题。
当我这样做时:
user = dataset.UserSet.CreateObject();
user.Id = Guid.NewGuid();
dataset.UserSet.AddObject(user);
dataset.SaveChanges();
{“无法将值 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
我是不是以错误的方式创建了对象,还是做了其他一些基本错误?
最佳答案
在定义为键的字段的模型上,添加以下属性。 此键在数据库中未标记为 IDENTITY,Entity Framework 给出异常
[Key]
[Display(Name = "Id")]
[DatabaseGenerated(System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.None)]
public int Id { get; set; }
关于c# - 为什么新创建的 EF 实体在尝试保存时抛出 ID is null 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2838832/