연결이 끊긴 POCO 개체로 작업하고 있습니다.연결이 끊긴 POCO 엔터티 유지
단일 개체를 유지하면 잘 작동합니다.
관련 개체를 유지하려고 할 때 문제가 발생합니다. 예를 들어
가 : 데이터 레이어에서 오브젝트를 가져 오는
:
using (MyContext ctx = new MyContext())
{
return ctx.Users.First();
}
이 개체는 비즈니스 레이어로 돌아갑니다 거기, 내가 어떤 자식 레코드를 추가, (단지 ilustrate하기) 아래 참조 :
objectUser.Permissions.Add(new Permission());
objectUser.Permissions.Add(new Permission());
사용 권한은 사용자 권한 탐색 기능입니다.
using (MyContext ctx = new MyContext())
{
ctx.Users.Attach(objectUser);
ctx.ObjectStateManager.ChangeObjectState(objectUser, System.Data.EntityState.Modified);
ctx.SaveChanges();
}
그러나 사용하여 내부의 첫 번째 줄에
, 나는 오류를 얻을 :그리고는, 그때 내가 다시 데이터베이스에이 objectUser을 유지하려면 "같은 키가 이미 존재 가진 객체를 ObjectStateManager는 동일한 키를 가진 여러 객체를 추적 할 수 없습니다 ".
내가 잘못했는지 아는 사람이 있습니까?
개체 및 관련 개체를 유지하기 만하면됩니다.
나를 도와 주셔서 감사합니다.
루이스 구스타보
나는 엔티티를 분리하려고했지만,이 경우에 나는 모든 관련 개체를 풀어, 내가 추가/제거 할 수 있도록 나는이 관련 개체가 필요합니다.
그런 다음 데이터베이스에 다시 저장하고 싶습니다.
나는 바보 같은 건축술을하고 있습니까 ??
루이스 구스타보
안녕하세요 게리, 답장을 보내 주셔서 감사합니다. 문제는 엔티티를 분리 할 때 관련된 모든 객체가 느슨합니다. 엔티티와 모든 관련 객체를 가져올 수있는 방법이 있습니까? – user1071897
당신은 이것을 위해 Include를 사용할 수 있어야합니다. 'return ctx.Users.Include ("Permissions"). First();' –