Я пробую MVC с Entity Framework и пытаюсь понять, как лучше использовать EF.
У меня есть страница, на которой можно сохранить информацию об ученике и информацию об отце / матери.Мой текущий код работает, как показано ниже, но я чувствую, что я делаю это неправильно.Есть ли лучший способ для меня это сделать?Нужно ли дважды вызывать SaveChanges ()?
БД имеет следующую структуру; Person PersonID INT PK FirstName Varchar (50)
Student Student_PersonID INT FK Father_PersonID INT FK Mother_PersonID INT FK
Учащийся, отец и мать являютсявсе FK к таблице персон.
На странице просмотра регистрации есть текстовые поля для 3 персон:
@Html.EditorFor(s => s.Person.FirstName) @*student name*@
@Html.EditorFor(f => f.Father.FirstName) @*father name*@
@Html.EditorFor(f => f.Mother.FirstName) @*mother name*@
Код контроллера выглядит следующим образом:
[HttpPost]
public ActionResult Register(Student sm)
{
using (var db = new SMEntities())
{
db.People.Add(sm.Person);
db.People.Add(sm.Mother);
db.People.Add(sm.Father);
db.SaveChanges(); //save the 3 persons
int studentId = sm.Person.PersonID;
int motherId = sm.Mother.PersonID;
int FatherId = sm.Father.PersonID;
Student s = new Student();
s.Student_PersonID = studentId;
s.Father_PersonID = FatherId;
s.Mother_PersonID = motherId;
db.Students.Add(s);
db.SaveChanges();
}
}
Яиспользуя VS2010, MVC 3, и это было смоделировано после первой концепции базы данных.