一、问题描述:
二、解决办法:
方法1:(去掉主键自动加的属性,代码保留SeriesKey)
原来是之前设计的数据中,对主键进行了设置,让其自动增加,导致我们自己不能修改主键,如下所示:
现在我们把打钩去掉:
程序中就可以自己修改主键了:
for (int i = 0; i < iInsertCondition; i++)
{
//每个序列号插入对应多行
for (int j = 0; j < iInsertCount; j++)
{
studySeries_Table.SeriesUID = i.ToString();
studySeries_Table.SeriesFrames = Convert.ToInt64("22");
studySeries_Table.SeriesGM = Convert.ToInt64("33");
studySeries_Table.StudyBodyKey = Convert.ToInt64(i + j);
studySeries_Table.SeriesDateTime = "2019-9-9";
studySeries_Table.PrintFlag = Convert.ToInt64("0");
studySeries_Table.PacsSendFlag = Convert.ToInt64("0");
studySeries_Table.SeriesKey = Convert.ToInt64( i + j);//主键不能重复。若是主键设了自动增加,这行需要注释掉。
studySeries_Table.StudyID = "00";
studySeries_Table.SeriesPathName = "00";
dataBase.StudySeries_Table.Add(studySeries_Table);
}
}
dataBase.SaveChanges();
方法2:(保留主键自动加的属性,代码去掉SeriesKey)
保留原来的主键,让其自动增加。我们每次添加数据即可,不用管主键,主键会自己增加:
for (int i = 0; i < iInsertCondition; i++)
{
//每个序列号插入对应多行
for (int j = 0; j < iInsertCount; j++)
{
studySeries_Table.SeriesUID = i.ToString();
studySeries_Table.SeriesFrames = Convert.ToInt64("22");
studySeries_Table.SeriesGM = Convert.ToInt64("33");
studySeries_Table.StudyBodyKey = Convert.ToInt64(i + j);
studySeries_Table.SeriesDateTime = "2019-9-9";
studySeries_Table.PrintFlag = Convert.ToInt64("0");
studySeries_Table.PacsSendFlag = Convert.ToInt64("0");
//studySeries_Table.SeriesKey = Convert.ToInt64( i + j);//主键不能重复。若是主键设了自动增加,这行需要注释掉。
studySeries_Table.StudyID = "00";
studySeries_Table.SeriesPathName = "00";
dataBase.StudySeries_Table.Add(studySeries_Table);
}
}
dataBase.SaveChanges();