Stack Exchange
Weird syntax Error while Inserting data to PostgreSQL using Entity Framework
Context:
    public MyContext() : base("POSTGRE_TestDB") //For PostreSQL
    {

    }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.HasDefaultSchema("public");
        base.OnModelCreating(modelBuilder);
    }
    public DbSet<testModel> testcase { get; set; }

Model: 
[Table("test_table")]
public class testModel
{
    [Key]
    //[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int id { get; set; }
    public string test_name { get; set; }
}

My code:
var test = new testModel();
test.id = 10;
test.test_name = "test";
            try
            {
                //_context.Entry(test).State = EntityState.Added;
                _context.testcase.Add(test);
                _context.SaveChanges();
            }catch(...){...}



Querying the same database is working as usual.
Problem comes when inserting the row.
Error:
System.Data.Entity.Infrastructure.DbUpdateException: An error occurred while updating the entries. See the inner exception for details. ---> 
System.Data.Entity.Core.UpdateException: An error occurred while updating the entries. See the inner exception for details. ---> 
Npgsql.NpgsqlException: ERROR: 42601: syntax error at or near "RETURNING"

I am not sure what's wrong with the syntax exactly of Postgres because of the EF. Can anybody tell me whats wrong here?

Postgres should have recorded the query in its log, if the RETURNING string is part of a query.  Could you look in the Postgres logs for the error message and query?

I checked the logs of Postgres. The insert statement executed by entity framework was : 
INSERT INTO "public"."test_table"("test_name") VALUES ('test') RETURNING "id"

Nothing is wrong with this generated command by entity framework. The Postgres I am using is 8.0.1 which I guess doesn't support RETURNING keyword. 
I will have to find some way to exclude RETURNING from the insert query.

PostgreSQL 8.0.1 is extremely ancient by now - Entity Framework will simply not work well against it.

@shay  Yeah I know. The EF search queries are working as usual. But the insertion queries need to be hard coded.
