문제가 발생했습니다. 이유가 무엇인지 알고 있지만 문제를 해결하는 올바른 방법을 모릅니다.엔티티 프레임 워크 : IEntityChangeTracker의 여러 인스턴스에서 개체를 참조 할 수 없습니다.
내 컨트롤러가 객체를 정의하는 2 개의 문자열과 함께 제품을 내 Service 클래스로 보냅니다.
다음은 서비스 클래스입니다.
public Product AddProduct(Product p, string cat, string subcat)
{
var category = _categoryService.GetCategoryByName(cat, subcat);
p.Categories.Add(category);
return _productRepository.CreateProduct(p);
}
첫 번째 줄의 리스팅 그래서 여기에 내가 내 컨텍스트의 인스턴스를 사용 소재 기존 카테고리 (CategroyService-> CategoryRepository-> DbContext)입니다.
그런 다음 해당 카테고리를 제품 카테고리 목록에 추가합니다. 그리고 마침내 나는 저장소에주고 그것을 내 데이터베이스 (eflow of the course)에 보관합니다.
은 그 때 나는 오류를 얻을An entity object cannot be referenced by multiple instances of IEntityChangeTracker.
내가 먼저 카테고리를 요청하고 제품을 추가하려고 있기 때문에 생각합니다. 그런 다음 변경 추적 프로그램은 2 개의 컨텍스트를 추적해야하며 혼동을 야기합니다. 문제는 내가 카테고리를 가질 때 카테고리의 첫 번째 컨텍스트가 삭제되지 않는 이유를 얻지 못한다는 것입니다.
어떻게해야합니까?
편집 :
_categoryService는 ProductRepository 이상의 다른 저장소를 사용한다.
감사합니다! 나는 이미 몇 가지 책임을 바꿨는데, 실제로 상황을 한 번만 호출하고 한 번만 저장했습니다. – TanguyB