Эй, ребята, я работаю в MVC2 проекте с EF4 , и у меня следующее исключение:
На объектный объект нельзя ссылаться несколькими экземплярами IEntityChangeTracker
Я пытаюсь сделать что-то вроде этого:
Transaction transaction = new Transaction();
transaction.Amount = response.Amount;
...
_transactionService.Add(transaction);
_transactionService.Save();
OrderPayment orderPayment = new OrderPayment();
orderPayment.AuthorizationTransaction = transaction;
...
_orderPaymentService.AddOrderPayment(orderPayment);
_orderPaymentService.Save();
у меня есть 3 слоя
- Уровень хранилища, где у меня есть вся логика EF4 и базовый CRUD для каждой сущности
- Сервисный уровень, который применяет всю мою бизнес-логику и использует репо, конечно, я не имею здесь никакой ссылки на objectcontext EF4
- И MVC в моем веб-слое
приведенный выше код принадлежит контроллеру веб-слоя, и мои репозитории:
OrderPaymentRepo
public void AddOrderPayment(OrderPayment orderPayment)
{
_pharmacyDpnCtx.OrderPayments.AddObject(orderPayment);
}
public int Save()
{
return _pharmacyDpnCtx.SaveChanges();
}
и TransactionRepo :
public void Add(Transaction transaction)
{
_pharmacyDpnCtx.Transactions.AddObject(transaction);
}
public int Save()
{
return _pharmacyDpnCtx.SaveChanges();
}
Я занимался исследованиями в Интернете, но многие решения имеют UnityOfWork для использования того же ObjectContext , это лучшее решение, но теперь я могу себе это позволить, любое предложение без UnityOfWork