我使用EF代碼優先開發我的ASP.NET MVC4應用程序,同樣使用遷移功能。我有特定的實體,我想設置顯式的id值由於某些原因。我怎樣才能做到這一點?我試着用這樣的屬性標記id屬性:使用EF代碼優先和遷移的明確ID值
public class NewsSource
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
public string Title { get; set; }
public string WebSiteUrl { get; set; }
}
然後,添加相應的遷移,刪除數據庫,並嘗試使用種子()方法,這樣來更新數據庫:
context.NewsSources.AddOrUpdate(x => x.Title,
new NewsSource {Id = 654, Title = "ABC", WebSiteUrl = @"http://www.abc.com/"},
new NewsSource {Id = 22, Title = "XYZ", WebSiteUrl = @"http://XYZ.ru/"});
並且Ive得到這個錯誤:「IDENTITY_INSERT設置爲OFF時,無法在表'NewsSources'中插入標識列的顯式值。我如何使用EF和遷移將identity_insert設置爲ON。正如我從許多主題理解它是不可能的,我必須使用直接的SQL命令。我錯了嗎?
我認爲你沒有錯。只要你把'[Key]'註釋掉了,EF就會想要通過它自己來處理這個ID。也許你應該爲你的桌子考慮另一種結構。 我可能有錯,但我的研究給了我和你一樣的結果:這是不可能的。 – Atlasmaybe