Реферат: Введение в ObjectSpaces

Customer cust = (Customer)os.GetObject(typeof(Customer),

"CustomerID=’alfki’");

// Список заказов загрузится при первом обращении

foreach (Order order in cust.Orders)

{

Console.WriteLine(“Customer: {0}, OrderDate: {1}”,

order.Customer.Name, order.OrderDate);

}

}

Метод Описание BeginTransaction, Commit, Rollback Управление транзакциями. Стоит обратить внимание, что метод Rollback не откатывает изменения в сохраняемых объектах, поэтому возможны ситуации, когда информация в БД и информация в сохраняемых объектах окажутся несогласоваными. Поэтому, во избежание конфликтов, рекомендуется после Rollback создавать новый экземпляр ObjectSpaces. GetObject Получить одиночный объект заданного типа из базы данных. В параметрах метода можно передать как OPath-запрос, так и список дочерних объектов, которые должны быть загружены одновременно с запрашиваемым объектом. GetObjectReader Получить из базы данных объекты через курсор, используя семантику, аналогичную используемой при работе с IDataReader. GetObjectSet Получить объекты из БД в виде единого массива. В отличии от ArrayList, класс ObjectSet предоставляет дополнительные возможности отслеживания оригинальных значений, передачи изменений через Remoting и некоторые другие. PersistChanges Сохранить измененный объект в БД. MarkForDeletion Пометить объект для удаления. Реальное удаление происходит при вызове PersistChanges. Resync Синхронизировать состочние объекта с информацией из БД. StartTracking “Пометить” объект как сохраняемый. Кроме текущих значений, в контексте сохраняется и состояние объекта (новый/измененный/удаленный/без изменений)

Дополнительные возможности ObjectSpaces

Чтение данных с использованием DbObjectReader

В отдельных случаях использование класса ObjectSpace может оказаться избыточным или неудобным. Например, если для доступа к базе данных необходимо использовать хранимые процедуры, большая часть функциональности ObjectSpaces окажется ненужной. Но и для подобных ситуаций в ObjectSpaces есть свое решение. Если требуется извлекать из произвольного источника данных информацию в виде объектов приложения, можно использовать класс DbObjectReader. Выступая как тонкая прослойка между ADO.NET-курсором (IDataReader) и классами приложения, DbObjectReader позволяет загружать сохраняемые объекты из источников данных, которые не поддерживаются ObjectSpaces напрямую.

public static void Main()

{

DataTable table = new DataTable();

table.Columns.Add("CustomerID", typeof(int));

table.Columns.Add("CompanyName", typeof(string));

table.Columns.Add("ContactName", typeof(string));

table.Columns.Add("Phone", typeof(string));

table.Rows.Add(new object[] { 1, "MyCompany", "MyCustomer", "222 33 22" });

using (IDataReader reader = table.GetDataReader())

{

DbObjectReader objectReader = new DbObjectReader(reader,

typeof(Customer), new MappingSchema("map.xml"));

while (objectReader.Read())

{

Customer cust = (Customer)objectReader.Current;

Console.WriteLine(cust.Name);

}

К-во Просмотров: 840
Бесплатно скачать Реферат: Введение в ObjectSpaces