В EF я сделал что-то вроде подкласса класса Sandwich и использовал их в определенных контроллерах.
С другой стороны, я обработал подобные вещи, например, создав еще одинfield:
public class Sandwich
{
public int? CurrentVersion { get; set; }
public int Id { get; set; }
public int SandwichTypeId { get; set; } //This is an enum type
//About a dozen other properties that define HOW the sandwich gets made
}
Таким образом, один сэндвич может иметь много предыдущих версий, каждая из которых будет указывать на текущую.В своей процедуре обновления я создал дубликат (с указанием CurrentVersion старой версии на исходный, теперь обновленный, идентификатор версии).
Это, конечно, требует, чтобы вы изменили другие места, где вы указали бутерброды, чтобы искать только те, которые не являются ревизиями.
Если вам нужно ссылаться сразу на предыдущую или следующую версию, вы можете создать int? PreviousVersion
и / или int? NextVersion
, чтобы избежать поиска в вашей базе данных.