Я не уверен на 100%, что я правильно использовал свои шаблоны репозитория и UnitOfWork, но тогда я не вижу, как это будет работать.Модели UnitOfWork и атомные операции
Например, у меня есть два объекта: Apple и Orange.
Apple, присоединяется к Orange через OrangeID так:
public class Apple
{
public int OrangeID { get; set; }
}
Я хочу, чтобы создать новый Apple, и новый оранжевый, и я хочу, чтобы установить связь ID соответствующим образом. Но у меня проблема. Я не буду знать OrangeID, пока не сохраню Orange в базе данных.
Таким образом, это означает, что у меня будет следующее:
var unitOfWork = new UnitOfWork();
Orange newOrange = new Orange();
OrangeRepository.Insert(newOrange);
unitOfWork.Commit();
//newOrange will have been updated with the actual ID
Apple newApple = new Apple(newOrange.ID);
etc...
Это не является атомарной операцией, если у меня есть сделка, которая сидит за пределами выше. Но я думал, что это должно было работать с UnitOfWork? Или должен ли мой UnitOfWork.Commit() присваивать соответствующие значения при записи в базу данных?
Любые помощь/советы будут оценены, благодаря Дункан