У меня есть веб-приложение C# .NET, и я хочу создать автоматическое увеличение на id. Я не могу понять, что я делаю неправильно, но я продолжаю получать ошибки, потому что он не увеличивается.Auto increment column .NET
Ошибка:
Cannot insert the value NULL into column 'Id', table 'Samen de Zorg.dbo.BulletinItem'; column does not allow nulls. INSERT fails.
The statement has been terminated.
Контроллер:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "UserID,Title,Description")] BulletinItem bulletinItem)
{
//
if (ModelState.IsValid)
{
db.BulletinItem.Add(bulletinItem);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(bulletinItem);
}
Модель:
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string UserID { get; set; }
public string Title { get; set; }
public string Description { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<BulletinReaction> BulletinReaction { get; set; }
модели в XML:
<EntityType Name="BulletinItem">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Name="Id" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
<Property Name="UserID" Type="nvarchar" MaxLength="256" Nullable="false" />
<Property Name="Title" Type="nvarchar" MaxLength="50" Nullable="false" />
<Property Name="Description" Type="nvarchar(max)" Nullable="false" />
</EntityType>
модель в SQL:
CREATE TABLE [dbo].[BulletinItem]
(
[Id] INT NOT NULL,
[UserID] NVARCHAR (256) NOT NULL,
[Title] NVARCHAR (50) NOT NULL,
[Description] NVARCHAR (MAX) NOT NULL,
CONSTRAINT [PK_BulletinItem]
PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_BulletinItem_AspNetUsers]
FOREIGN KEY ([UserID]) REFERENCES [dbo].[AspNetUsers] ([UserName])
);
Как выглядит столбец в SQL? Имеет ли он спецификацию идентификации? – jrummell
Что вы используете для создания своего db? Код Первый EF? –
@jrummell Я добавил модель sql по вашему запросу –