PostgreSQL附近的错误42601语法

时间:2018-08-01 04:43:49

标签: c# .net postgresql entity-framework entity

我正尝试使用Entity Framework和数据库Postgresql保存数据

private OctopusDBEntities _dbContext;

public PendaftaranSiswaDA()
    {
        _dbContext = new OctopusDBEntities();
    }

    public resultVM SubmitFirstReg(resultVM model)
    {
        siswa_first_reg _tab_first_reg = new siswa_first_reg();

        try
        {
            Mapper.CreateMap<FirstRegVM, siswa_first_reg>().ForAllMembers(cond => cond.Condition(src => !src.IsSourceValueNull));
            _tab_first_reg = Mapper.Map(model.firstRegVM, _tab_first_reg);
            _dbContext.Entry(_tab_first_reg).State = EntityState.Added;
            _dbContext.SaveChanges(); // --- i have an error from here
            model.isRegister = true;
            model.message = "Data sudah terdaftar!";
        }
        catch (Exception e)
        {
            throw e;
        }
        return model;
    }

该错误表示“(”或附近的语法错误,就像在图enter image description here上一样

这是由entityframework生成的查询。

INSERT INTO (SELECT siswa_first_reg.reg_no_registration, siswa_first_reg.reg_full_name, siswa_first_reg.reg_last_school_name, siswa_first_reg.reg_age, siswa_first_reg.reg_mobile_no, siswa_first_reg.reg_birth_place, siswa_first_reg.reg_birth_date, siswa_first_reg.reg_address, siswa_first_reg.reg_email, siswa_first_reg.reg_status, siswa_first_reg.reg_registration_date, siswa_first_reg.reg_gender FROM octo_test.siswa_first_reg AS siswa_first_reg) reg_no_registration, reg_full_name, reg_last_school_name, reg_age, reg_mobile_no, reg_birth_place, reg_birth_date, reg_address, reg_email, reg_status, reg_registration_date, reg_gender) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, NULL, NULL, NULL, $9)

为什么这样生成查询? 以及我该如何解决?

非常感谢您。

2 个答案:

答案 0 :(得分:0)

我没有关于OP的答案,但是这个问题确实使我意识到了自己的错误。尽管该异常实际上并不包含原始查询,但通常对您毫无帮助,但有可能是查询格式/语法问题。例如,我最近在C#代码中更改了查询以及其他内容,但是在参数列表中错过了逗号!

答案 1 :(得分:-2)

很抱歉,您所提供的信息不足。 在尝试解决此问题时,我找到了答案。

只想分享,也许有些人有相同的情况。 上面的代码没有错。 问题出在数据库上。 我没有在桌子上设置主键。

感谢您的关注和支持。