Skip to main content

Delete a table from database having many dependency with others table using Entity framework

 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

Popular posts from this blog

Cannot access a disposed object. A common cause of this error is disposing a context that was

  Cannot access a disposed object. A common cause of this error is disposing a context that was resolved from dependency injection and then later trying to use the same context instance elsewhere in your application. This may occur if you are calling Dispose() on the context, or wrapping the context in a using statement. If you are using dependency injection, you should let the dependency injection container take care of disposing context instances. Object name: 'PropertyContext'.  public class CustomerHub : Hub     {         public readonly ICustomerService _customerService;         private readonly IServiceScopeFactory _serviceScopeFactory;         public CustomerHub(ICustomerService service, IServiceScopeFactory serviceScopeFactory)         {             _customerService = service;             _serviceScopeFactory = serviceSco...

Limit Upload File Type Extensions ASP.NET MVC 5

  //-----------------------------------------------------------------------    // <copyright file="AllowExtensionsAttribute.cs" company="None">    //     Copyright (c) Allow to distribute this code and utilize this code for personal or commercial purpose.    // </copyright>    // <author>Asma Khalid</author>    //-----------------------------------------------------------------------       namespace  ImgExtLimit.Helper_Code.Common   {        using  System;        using  System.Collections.Generic;        using  System.ComponentModel.DataAnnotations;        using  System.Linq;      ...