[英]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.