Исключение типа "System.Data.Entity.Core.MappingException" произошло в EntityFramework.dll, но не было обработано в коде пользователя
Я пытаюсь вставить данные, используя эту функцию в рамках структуры, но без MVC
protected void SaveBranch_Click(object sender, EventArgs e)
{
if (DropDownBranchSchool.Text == string.Empty)
{
}
else
{
branch newBranch = new branch(txtBoxBranchName.Text, txtBoxBranchLocation.Text, txtBoxBranchPhone.Text, txtBoxBranchEmail.Text, Int32.Parse(DropDownBranchSchool.Text));
_SchoolDBEntity.branches.Add(newBranch);
_SchoolDBEntity.SaveChanges();
Response.Redirect("Default.aspx");
}
}
Дополнительная информация об этом исключении:
"Тип" Edm.String "члена" SchoolId "в концептуальном типе стороны" DatabaseDBModel.student "не соответствует типу" System.Int32 "члена" SchoolId "в типе стороны объекта" SchoolManagementSystemOOP.Models "..ученик'."
Мой код класса ветки выглядит следующим образом:
public partial class branch
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public branch(string name, string location, string phone, string email, int schoolId)
{
this.students = new HashSet<student>();
BName = name;
BLocation = location;
BPhone = phone;
BEmailID = email;
SchoolId = schoolId;
}
public int BId { get; set; }
public string BName { get; set; }
public string BLocation { get; set; }
public string BPhone { get; set; }
public string BEmailID { get; set; }
public int SchoolId { get; set; }
public virtual school school { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<student> students { get; set; }
}
}
Код класса ученика:
public partial class student
{
public int Id { get; set; }
public string FName { get; set; }
public string LName { get; set; }
public string Phone { get; set; }
public string EmailId { get; set; }
public string SchoolId { get; set; }
public string BranchId { get; set; }
public virtual branch branch { get; set; }
public student(string fname, string lname, string phone, string email, string schoolId, string branchId )
{
FName = fname;
LName = lname;
Phone = phone;
EmailId = email;
SchoolId = schoolId;
BranchId = branchId;
}
}
Я хочу кое-что понять и понять, что является причиной исключения, я также попытался изменить тип int для школы на тип string.
1 ответ
В студенческом классе вы хотите, чтобы тип schoolId был int, но в классе позднего завтрака он объявлен как строка. если они используют для отображения в любом месте, то ef не может сгенерировать это. Вы можете попробовать в классе продукта.
public string schoolId{get;set;}
в
public int schoolId{get;set};