![](/img/trans.png)
[英]Entity Framework set auto increment and start value on column that is not primary key
[英]Primary key value doesn't increment auto in Entity framwork database
我敢肯定我錯過了一些很小的東西,但是我遇到了主要價值自動遞增問題。 我已經創建了兩個簡單的表,並通過使用Entity Framework 5來采用現有數據庫模型的第一種方法。我從控制台程序中簡單地在表中添加值。
我的問題是代碼第一次可以正常運行,但是如果我嘗試通過再次運行整個應用程序來增加更多價值並發現原因,則會崩潰; EF不會自動增加主索引。
CREATE TABLE [dbo].[Book_Titles] (
[Book_ID] INT NOT NULL,
[Title] NVARCHAR (150) NOT NULL,
PRIMARY KEY CLUSTERED ([Book_ID] ASC)
);
CREATE TABLE [dbo].[Books_Authors] (
[Author_Id] INT NOT NULL,
[Author_Name] NVARCHAR (150) NOT NULL,
[Book_ID] INT NULL,
PRIMARY KEY CLUSTERED ([Author_Id] ASC),
FOREIGN KEY ([Book_ID]) REFERENCES [dbo].[Book_Titles] ([Book_ID])
);
namespace Database_First_01
{
class Program
{
static void Main(string[] args)
{
using (var db = new BooksContext())
{
var book = new Book_Titles()
{
Title ="EF ",
};
var author = new Books_Authors()
{
Author_Name = "me!",
};
book.Books_Authors.Add(author);
db.Book_Titles.Add(book);
db.SaveChanges();
}
}
}
}
提前謝謝了。
嘗試這個
CREATE TABLE [dbo].[Book_Titles] (
[Book_ID] INT IDENTITY(1,1) NOT NULL,
[Title] NVARCHAR (150) NOT NULL,
PRIMARY KEY CLUSTERED ([Book_ID] ASC)
);
在列上定義Identity
如果需要,與其他相同。
Microsoft SQL Server使用IDENTITY
關鍵字執行自動遞增功能。 和它在您的情況下丟失。
您可以在不同情況下使用IDENTITY
屬性
因此,如果您已經創建了表(並且它具有數據),則可以按如下所示進行更改。
ALTER TABLE (yourTable) ADD NewColumn INT IDENTITY(1,1)
ALTER TABLE (yourTable) DROP COLUMN OldColumnName
sp_rename 'yourTable.NewColumn', 'OldColumnName', 'COLUMN'
它將您的數據保存在現有表中。
希望對你有幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.