Одно из больших преимуществ в использовании
ObjectSpaces состоит в том, что для добавления объекту свойств “сохраняемости”
его не надо специальным образом модифицировать (наследовать от специального базового
класса, специальным образом размечать свойства или поля). Подобная прозрачность
реализации ObjectSpaces дает преимущества в использовании.
// Работа с объектами
Customer и Orders не зависит
// от того, используется
ObjectSpaces или нет
Customer cust = new Customer();
Order ord = new Order();
cust.Id = "ALFQI";
cust.Name = "MyName";
cust.Company = "MyCompany";
cust.Phone = "MyPhone";
cust.Fax = "MyFax";
ord.Customer = cust;
ord.OrderDate = DateTime.Now;
ord.ShippedDate = DateTime.Now;
ord.RequiredDate = DateTime.Now;
cust.Orders.Add(ord);
// Перед сохранением
объектов необходимо поместить их в контекст
// ObjectSpaces. Флаг
InitialState.Inserted показывает, что мы добавляем новую