我必須能夠設置我嘗試添加到我的列表「final_zones」中的實體的主鍵。我有一個控制器的構造函數如下:EF 7身份插入問題
public UtilController(CFETSContext context)
{
_context = context;
}
......Then in a web api method.........
using (var transaction = _context.Database.BeginTransaction())
{
_context.Database.ExecuteSqlCommand(@"SET IDENTITY_INSERT [CFETSWeb].[dbo].[Zone] ON");
_context.SaveChanges();
transaction.Commit();
}
using (var transaction = _context.Database.BeginTransaction())
{
_context.Zones.AddRange(final_zones);
_context.SaveChanges(); //ERROR HERE
transaction.Commit();
}
不管我做什麼,我似乎無法得到IDENTITY_INSERT開啓。我得到以下錯誤:
{"Cannot insert explicit value for identity column in table 'Zone' when IDENTITY_INSERT is set to OFF."}
我似乎無法讓它關閉。我可以在控制器中添加實體到我的數據庫中,所以我知道其他一切正在工作。我曾嘗試在沒有交易的情況下做到這一點,並得到相同的結果。
_context.Database.ExecuteSqlCommand(@"SET IDENTITY_INSERT [CFETSWeb].[dbo].[Zone] ON");
_context.Zones.AddRange(final_zones);
_context.SaveChanges();
任何想法?我無法接受下一步嘗試。謝謝。
只是爲了確認,你是否已經將區域模型的主鍵屬性裝飾/配置爲鍵? – Developer
看到這個:http://blog.robertobonini.com/2014/10/09/entity-framework-with-identity-insert/ –
是的。 [Key] public int ZoneId {get;組; } –