我正在使用 ASP.NET 样板模板。
我想更新Details
包含多个项目的表。如果一个条目存在,它必须更新,否则必须添加一个新条目,并且必须删除表中与Master
主键相关的所有其他条目。Details
但它显示一个错误:
当 IDENTITY_INSERT 设置为 OFF 时,无法在表“SemesterDetails”中插入标识列的显式值
这是Master
表格:
public class StudentDegreeCore : Entity<int>
{
[StringLength(150)]
[Required(ErrorMessage = "Enter Degree College ")]
public string DegreeCollege { get; set; }
[Required()]
public string CollegeID { get; set; }
[StringLength(7, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 7)]
[Required(ErrorMessage = "Enter 10th Pass Year")]
public string CommencementYear { get; set; }
public List<StudentSemesterCore> SemesterDetails { get; set; }
}
这是Details
表,由StudentSemesterCore
类表示:
public class StudentSemesterCore
{
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[StringLength(150)]
[Required(ErrorMessage = "Enter Year/Semester")]
public string YearOrSemester { get; set; }
[Required()]
public virtual int StudentDegreeID { get; set; }
[ForeignKey("StudentDegreeID")]
public virtual StudentDegreeCore StudentDegreeCore { get; set; }
[StringLength(4, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 4)]
[Required(ErrorMessage = "Enter Semester Status")]
public string Status { get; set; }
[DisplayName("% of Marks")]
[RegularExpression(@"\d+(\.\d{1,2})?", ErrorMessage = "Numbers With Two decimal Place Allowed")]
public decimal MarkPercentage { get; set; }
}
这是Update
代码:
_studentdegreeRepository.Update(st);
CurrentUnitOfWork.SaveChanges();
SaveChanges
调用时显示错误。实际上,如果存在相同的值,我想更新详细信息,否则添加新的并且StudentDegreeID
必须删除与之相关的所有其他数据。