Here is a sample C# code Snippet :
string foreignKeyTableInfo = string.Format("EXEC sp_fkeys '{0}'", "Company");
IQueryable<ForeignKeyTableReference> fkTable = _dbContext.Database.SqlQuery<ForeignKeyTableReference>(foreignKeyTableInfo).AsQueryable();
//L
string disableFkTemplate = "ALTER TABLE [{{tableName}}] NOCHECK CONSTRAINT [{{FoerignKeyName}}];";
string enableFkTemplate = "ALTER TABLE [{{tableName}}] CHECK CONSTRAINT [{{FoerignKeyName}}];";
//END
string disable_template = "ALTER TABLE [{{tableName}}] NOCHECK CONSTRAINT ALL;";
string enable_template = "ALTER TABLE [{{tableName}}] WITH CHECK CHECK CONSTRAINT ALL;";
var dependencyList = fkTable.ToList();
string dFquery = "";
//disable_template foreign key contrstraint
foreach (var fk in dependencyList)
{
string dFquerySql = disableFkTemplate;
dFquerySql = dFquerySql.Replace("{{tableName}}", fk.FKTABLE_NAME);
dFquerySql = dFquerySql.Replace("{{FoerignKeyName}}", fk.FK_NAME);
dFquery = dFquery + dFquerySql + Environment.NewLine;
}
_dbContext.Database.CommandTimeout = 120;
int res = _dbContext.Database.ExecuteSqlCommand(dFquery);
// Remove from Company
_dbContext.Database.ExecuteSqlCommand(string.Format("DELETE FROM Company WHERE ID='{0}'", companyId));
//enable_template foreign key contrstraint
string enableQuery = "";
foreach (var fk in dependencyList)
{
string eFslq = enableFkTemplate;
eFslq = eFslq.Replace("{{tableName}}", fk.FKTABLE_NAME);
eFslq = eFslq.Replace("{{FoerignKeyName}}", fk.FK_NAME);
enableQuery = enableQuery + eFslq + Environment.NewLine;
}
int res1 = _dbContext.Database.ExecuteSqlCommand(enableQuery);
Comments
Post a Comment