Jquery 一次保存多个表时System.Data.Entity.Infrastructure.DbUpdateException
我想一次插入所有这些表,在调试器中一切都很顺利,直到它点击SaveChanges()方法,我得到“System.Data.Entity.Infrastructure.DbUpdateException”错误 表:Jquery 一次保存多个表时System.Data.Entity.Infrastructure.DbUpdateException,jquery,ajax,entity-framework,web-services,Jquery,Ajax,Entity Framework,Web Services,我想一次插入所有这些表,在调试器中一切都很顺利,直到它点击SaveChanges()方法,我得到“System.Data.Entity.Infrastructure.DbUpdateException”错误 表: public partial class EmployementRequest { [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridabl
public partial class EmployementRequest
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public EmployementRequest()
{
this.EmployeeCourses = new Collection<EmployeeCours>();
this.EmployeeLanguages = new Collection<EmployeeLanguage>();
this.EmployeeSkills = new Collection<EmployeeSkill>();
}
public System.Guid PKEmploymentRequest { get; set; }
public Nullable<System.Guid> FKPerson { get; set; }
public string Name { get; set; }
public string Surnam { get; set; }
public string Father { get; set; }
public string IDNumber { get; set; }
public string IDCardNumber { get; set; }
public string IDCity { get; set; }
public string Birthday { get; set; }
public string Birthplace { get; set; }
public string Nationality { get; set; }
public string Religion { get; set; }
public string Phone { get; set; }
public string Cell { get; set; }
public string Address { get; set; }
public string EmergencyName { get; set; }
public string EmergencyPhone { get; set; }
public string EmergencyAddress { get; set; }
public string ParentedPeople { get; set; }
public string Gender { get; set; }
public string MarriageStatus { get; set; }
public string Residency { get; set; }
public string InsuranceStatus { get; set; }
public string InsuranceCode { get; set; }
public string VehicleStatus { get; set; }
public string VehicleType { get; set; }
public string MilitaryServiceStatus { get; set; }
public string EducationGrade { get; set; }
public string EducatedFrom { get; set; }
public string EducationField { get; set; }
public string Illness { get; set; }
public Nullable<bool> ExtraWorkCapability { get; set; }
public string LeisureTimeHobbies { get; set; }
public Nullable<decimal> Salary { get; set; }
public string IntroductionMethod { get; set; }
public string IntroducerName { get; set; }
public string CreatedOn { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual Collection<EmployeeCours> EmployeeCourses { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual Collection<EmployeeLanguage> EmployeeLanguages { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual Collection<EmployeeSkill> EmployeeSkills { get; set; }
}
public partial class EmployeeCours
{
public System.Guid PKEmlpoyeeCourse { get; set; }
public Nullable<System.Guid> FKEmployementRequest { get; set; }
public string Course { get; set; }
public string Description { get; set; }
public Nullable<int> Duration { get; set; }
public string Date { get; set; }
public string Association { get; set; }
public virtual EmployementRequest EmployementRequest { get; set; }
}
public partial class EmployeeLanguage
{
public System.Guid PKEmployeeLanguage { get; set; }
public Nullable<System.Guid> FKEmploymentRequest { get; set; }
public string Name { get; set; }
public string ComprehensionLevel { get; set; }
public string WritingLevel { get; set; }
public string ConversationLevel { get; set; }
public virtual EmployementRequest EmployementRequest { get; set; }
}
public partial class EmployeeSkill
{
public System.Guid PKEmployeeSkill { get; set; }
public Nullable<System.Guid> FKEmploymentRequest { get; set; }
public string Skill { get; set; }
public string Description { get; set; }
public virtual EmployementRequest EmployementRequest { get; set; }
}
方法
尝试将您的代码包含在带有Update Exception或DbValidationException
ex
的Try catch中:
try
{
using (var db = new UKN_DBNAMEEntities())
{
db.EmployementRequests.Add(employementRequest);
db.SaveChanges();
}
}
catch(DbEntityValidationException ex)
{
//get exception and debug
}
catch(UpdateException ex)
{
//get exception and debug
}
我意识到实际的错误是什么。违反主键约束
[WebMethod]
public void AddEmployementRequest(EmployementRequest emp,EmployeeLanguage el,EmployeeSkill es,EmployeeCours ec)
{
emp.PKEmploymentRequest = Guid.NewGuid();
EmployeeSkill employeeSkill = new EmployeeSkill
{
PKEmployeeSkill = new Guid(),
FKEmploymentRequest = emp.PKEmploymentRequest,
Skill = es.Skill,
Description = es.Description
};
EmployeeLanguage employeeLanguage = new EmployeeLanguage
{
FKEmploymentRequest = emp.PKEmploymentRequest,
PKEmployeeLanguage = Guid.NewGuid(),
ComprehensionLevel = el.ComprehensionLevel,
ConversationLevel = el.ConversationLevel,
WritingLevel = el.WritingLevel,
Name = el.Name
};
EmployeeCours employeeCours = new EmployeeCours
{
PKEmlpoyeeCourse = Guid.NewGuid(),
FKEmployementRequest = emp.PKEmploymentRequest,
Date = ec.Date ,
Course = ec.Course,
Duration = ec.Duration,
Association = ec.Association,
Description = ec.Description
};
EmployementRequest employementRequest = new EmployementRequest
{
Name = emp.Name,
Address = emp.Address,
Surnam = emp.Surnam,
Father = emp.Father,
IDNumber = emp.IDNumber,
IDCardNumber = emp.IDNumber,
IDCity = emp.IDCity,
Birthday = emp.Birthday,
Birthplace = emp.Birthplace,
Nationality = emp.Nationality,
Religion = emp.Religion,
Phone = emp.Phone,
Cell = emp.Cell,
EmergencyAddress = emp.EmergencyAddress,
EmergencyName = emp.EmergencyName,
EmergencyPhone = emp.EmergencyPhone,
ParentedPeople = emp.ParentedPeople,
Gender = emp.Gender,
MarriageStatus = emp.MarriageStatus,
Residency = emp.Residency,
InsuranceCode = emp.InsuranceCode,
InsuranceStatus = emp.InsuranceStatus,
VehicleType = emp.VehicleType,
MilitaryServiceStatus = emp.MilitaryServiceStatus,
EducatedFrom = emp.EducatedFrom,
EducationField = emp.EducationField,
EducationGrade = emp.EducationGrade,
ExtraWorkCapability = emp.ExtraWorkCapability,
LeisureTimeHobbies = emp.LeisureTimeHobbies,
Salary = emp.Salary,
IntroducerName = emp.IntroducerName,
IntroductionMethod = emp.IntroductionMethod,
Illness = emp.Illness,
VehicleStatus = emp.VehicleStatus,
};
employementRequest.EmployeeLanguages.Add(employeeLanguage);
employementRequest.EmployeeSkills.Add(employeeSkill);
employementRequest.EmployeeCourses.Add(employeeCours);
using (var db = new UKN_DBNAMEEntities())
{
db.EmployementRequests.Add(employementRequest);
db.SaveChanges();
}
}
}
try
{
using (var db = new UKN_DBNAMEEntities())
{
db.EmployementRequests.Add(employementRequest);
db.SaveChanges();
}
}
catch(DbEntityValidationException ex)
{
//get exception and debug
}
catch(UpdateException ex)
{
//get exception and debug
}