저는 EF 6.0 및 코드 우선 접근 방식을 사용하고 있습니다. Entity Framework를 통해 db에서 데이터를 만들고 업데이트하는 데 문제가 있습니다. 나는 학생을 저장하기 전에 db.Groups.Attach(student.Group)
을 만들 필요가 있는지 확실하지 않습니다. 학생을 구한 후에이 이름이 없으면 같은 이름이지만 다른 GroupId를 가진 새로운 그룹도 생깁니다. 나는 예외를 받고 있어요 때문에Entity Framework : WPF에서 관련 개체 생성 및 업데이트
또한 나는 학생을 업데이트 할 수 없습니다 : The relationship between the two objects cannot be defined because they are attached to different ObjectContext objects.
public class Student {
[Key]
public int StudentId {get; set;}
public string Name {get; set;}
public Group Group {get; set;}
}
public class Group {
[Key]
public int GroupId{ get; set;}
public string Name {get; set;}
public virtual ICollection<Student> Students {get; set;}
}
합니다. 내가 엔티티에하지만 난 그냥 그룹을 변경할 수 없습니다 기억 것과 일부터
public class StudentDao {
public void createStudent(Student student) {
using (var db = new StorageContext()) {
// without this also creates new Group.
db.Groups.Attach(student.Group);
db.Students.Add(student);
db.SaveChanges();
}
}
public void updateStudent(Student student) {
using (var db = new StorageContext()) {
var original = db.Students.Find(student.StudentId);
if (original != null) {
original.Name = student.Name;
original.Group = student.Group;
db.SaveChanges(); //exception
}
}
}
}
답장을 보내 주셔서 감사합니다. "서비스와 유사한 메소드에서 DbContext와 DbSets 사용"은 무엇을 의미합니까? 한 클래스에 하나의 dbcontext가 있다는 것을 의미합니까? 기사를 언급하도록 정교 할 수 있습니까? – Amir