Исключение типа "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};
Другие вопросы по тегам