无法在表格中插入标识列的显式值'' WCF服务中的错误

时间:2016-02-27 09:06:52

标签: c# mysql sql-server wcf

问题

当我向表中添加一行时,我希望我的SQL数据库表主键ID自动递增1。

我正在使用WCF服务,在DAL(数据访问层)中我试图在数据库中添加一行,但它不断传递' 0'作为主键ID。

代码

这是我的DAL,你可以看到我正在设置所有的值。 注意 HOLIDAY_ID是SQL表的递增ID,我没有传递任何值:

public void AddHoliday(string STARTDATE, string ENDDATE)
{

    HOLIDAY_EVENT _newHolidayEvent = new HOLIDAY_EVENT
    {
        USER_ID = 1,
        HOLIDAY_TITLE = "Test1",
        HOLIDAY_START = Convert.ToDateTime(STARTDATE),
        HOLIDAY_END = Convert.ToDateTime(ENDDATE),
        HOLIDAY_EVENT_STATE_ID = 2
    };

    _ENTITY.HOLIDAY_EVENT.Add(_newHolidayEvent);
    _ENTITY.SaveChanges();
}

这是我的SQL表的设计:

enter image description here

以下是我设置HOLIDAY_ID增量的方式:

enter image description here

结论

在我的DAL中,我需要传递给HOLIDAY_ID以使ID自动递增?

1 个答案:

答案 0 :(得分:0)

您是否在模型中设置了DatabaseGenerated(DatabaseGeneratedOption.Identity)

例如:

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int HOLIDAY_ID { get; set; }
HOLIDAY_ID致电后,

SaveChanges()应该可用。