[英]Setting SET IDENTITY_INSERT for multiple tables in Entity Framework Core
我想將表IDENTITY_INSERT
設置為ON
。 我可以一次吃一張桌子。 但是當我在做代碼優先的方法時,我怎么能做到不止一個。
我收到此錯誤:
System.Data.SqlClient.SqlException : IDENTITY_INSERT 對於表“Some Table”已經打開。 無法對表“ref.EmploymentType”執行 SET 操作
測試文件
using (var transaction = _referenceDataDbContext.Database.BeginTransaction())
{
_referenceDataDbContext.EmploymentType.AddRangeAsync(
new EmploymentTypeEntity
{
EmploymentTypeID = 1,
EmploymentType = "EmploymentType1 ",
CategoryTypeID = 27,
SiteAddress = null,
CreatedBy = "UnitTest",
CreatedOn = DateTime.Now,
ModifiedBy = "UnitTest",
ModifiedOn = DateTime.Now,
RowVersion = new RowVersion(1),
EmploymentTypeGroups = new[]
{
new EmploymentTypeGroupEntity
{
EmploymentTypeGroupID = 11, GroupName = "GroupName", IsActive = true
}
}
}
}
);
_referenceDataDbContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [ref].[EmploymentTypeGroup] ON");
_referenceDataDbContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [ref].[EmploymentType] ON");
_referenceDataDbContext.SaveChanges();
}
刪除這樣的行:
EmploymentTypeGroups = new[]
{
new EmploymentTypeGroupEntity
{
EmploymentTypeGroupID = 71, GroupName="Some Data", IsActive = true
}
}
並移動_referenceDataDbContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [ref].[EmploymentType] ON");
到_referenceDataDbContext.EmploymentType.AddRangeAsync(
行上方。
然后關閉 IDENTITY_INSERT。
然后重復整個過程以插入您的組記錄。
這樣您一次只需要對一張表進行 IDENTITY_INSERT ON。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.