簡體   English   中英

首先使用非順序編號進行編碼

[英]Code first, using a non-sequential Id

我有一個帶有幾個表的代碼優先項目,我試圖確定對於某個對象,將其插入的ID將不是sql提供的順序ID,而是我將提供的ID。

盡管我的存儲庫中的代碼可以正確創建對象,並在將其插入到我的數據庫后將所需的ID分配給它:

DbContext.Set<Containers>().Add(entity);

它將作為下一個順序ID插入。

在我的代碼中,首先,我的所有實體都源自的基本實體的Id列是:

public int Id { get; set; }

我正在尋找此實體中唯一的ID更改。 有什么建議么?

這是默認行為:如果您未明確更改它,則EF將在ID上創建一個自動遞增列(如果其類型合適)。

要更改它,請使用Fluent API:

modelBuilder.Entity<Containers>().Property(x=>x.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

或數據注釋:

[DatabaseGenerated(DatabaseGeneratedOption.None)]

也許在此之后您必須運行遷移,以將表也更改為非自動增量。 如果您不想這樣做,則每次需要這種行為時,都必須使用包裹在事務中的身份插入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM