Invalid Column name when using savechanges() in entity framework

asp.net-mvc ef-database-first entity-framework entity-framework-6 sql-server

Question

So here is the deal, I have changed my database schema, and changed the PK for one of my tables and I have removed everything related to the old PK (FK reference in another tables).

However I have this exception when I insert a new entity using savechanges() method

ex = {"An error occurred while updating the entries. See the inner exception for details."}

And the inner exception is

InnerException = {"Invalid column name 'Audit_ID'."}

the Audit_ID is the old PK.

I have tried this "Invalid column name" when trying to insert data into database using SQL

this Invalid column name when trying to add an entity to a database using DbContext

this Invalid column name after mapping

and nothing solved my issue, so as I deleted my whole edmx and created a new one also it didn't work.

ps: I am using database first approach

1
12
5/23/2017 12:08:44 PM

Accepted Answer

Non of the solutions worked because the problem was actually in the SQL server database.

I ran SQL Profiler and executed the program insert statement, I found out that the error is in one of the table's triggers which has the Previous column name, changed that to the new PK and it finally worked.

So if anyone have a similar problem, the above links in the post might help or you should check if the problem was actually happening the Database server.

7
9/23/2016 2:24:27 AM

Popular Answer

In may case, we found defining the database elemenents in the context fixed the issue.

protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.HasDefaultSchema("database_schema");
            modelBuilder.Entity<EntityNameInModel>().ToTable("table_in_database").HasKey(ats => ats.id);
            modelBuilder.Entity<EntityNameInModel>().Property(ats => ats.user_name).HasColumnName("user_name");
}

You will need to define every schema, table, and field in this way... but you'll have absolute control in your code after. Good luck!



Related Questions





Related

Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow