我正在使用C#4.5.1和實體框架6.1.3。如何插入帶有我的ID的對象?
我需要做的是我想插入我的對象的主要ID鍵,如; 1-3-5-7-9-11-13-15等...
我不想使用自動增量功能插入它們。
贊;
public static void SeedCategories(DataContext context)
{
context.Categories.AddOrUpdate(new Category
{
Id = 1,
Name = "Haber",
IsActive = true
});
context.SaveChanges();
context.Categories.AddOrUpdate(new Category
{
Id = 5,
Name = "Basic",
ParentId = 1,
IsActive = true
},
new Category
{
Id = 7,
Name = "Medium",
ParentId = 1,
IsActive = true
},
new Category
{
Id = 9,
Name = "Pro",
ParentId = 1,
IsActive = true
},
new Category
{
Id = 11,
Name = "Advanced",
ParentId = 1,
IsActive = true
},
new Category
{
Id = 13,
Name = "Ultimate",
ParentId = 1,
IsActive = true
}
);
context.SaveChanges();
}
但實體框架插入所有這些對象像;
- ID = 1,名稱=哈伯
- ID = 2,名稱=基本
- ID = 3,名稱=中
- ID = 4,名稱=臨
所以我需要你的幫助...
@Update:爲什麼我需要這個?我們正在將舊數據庫遷移到新數據庫。但對於業務需求,某些屬性和類別將不會在新數據庫中使用。例如,如果category屬性isActive = false。所以我只採取isActive =真正的。總結:我有類似id = 3,(id = 4 isActive = false),id = 5,id = 33,id = 410等類別的列表。
你可以只關閉自動增量,使用DatabaseGeneratedOption.None? – DevilSuichiro
確保您的類別表沒有定義**自動遞增**主鍵。這將允許您定義自己的值。或者,您可以將Identity Increment設置爲2而不是1,這應該跳過其他所有項。 (假設MSSQL) –
@DevilSuichiro,我試圖將這個數據註解(DatabaseGeneratedOption.None)添加到我的通用T Id {get; set;}屬性中。但它仍然會自動增加它。我錯過了什麼,我不知道。 –