我无法初始化或修改模型ID。
这是我的模型,每个值都有一个特定的id。例如,id = 11具有值"计算机"但我无法初始化我的模型ID。当我发布id = 11和值="计算机"数据库设置值1表示id,并将其递增为下一个值。
public class Faculty
{
[Key]
public int Id { get; set; }
public string value { get; set; }
public override string ToString()
{
return value;
}
}
数据库表的定义如下:
CREATE TABLE [dbo].[Faculty] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[value] NVARCHAR (MAX) NULL,
CONSTRAINT [PK_dbo.Faculty] PRIMARY KEY CLUSTERED ([Id] ASC)
);
我应该如何更改模型以使我的模型ID可插入?
答案 0 :(得分:1)
删除表并重新创建它。
CREATE TABLE [dbo].[Sexes] ( [Id] INT NOT NULL,
[value] NVARCHAR (MAX) NULL,
CONSTRAINT [PK_dbo.Sexes] PRIMARY KEY CLUSTERED ([Id] ASC)
);
如果您希望EF更新ID,您可以执行以下操作
`using (var dataContext = new DataModelContainer())
using (var transaction = dataContext.Database.BeginTransaction())
{
var user = new User()
{
ID = id,
Name = "John"
};
dataContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[User] OFF");
dataContext.User.Add(user);
dataContext.SaveChanges();
dataContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[User] ON");
transaction.Commit();
}`
如果你想在模型上使用dataannotation,试试这个 -
public class MyEntity {
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
}