Работа с сущностью базы данных
Glossary Item Box
Примеры использования класса Entity для работы с базой данных
Пакет с конфигурационным веб-сервисом, реализующим приведенные ниже примеры, можно скачать по ссылке.
Пример 1
Получение значения колонки схемы [City] с именем [Name]
public string GetEntityColumnData() { var result = ""; // Создание запроса к схеме City, добавление в запрос колонки Name. var esqResult = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "City"); var colName = esqResult.AddColumn("Name"); // Выполнение запроса к базе данных и получение объекта с заданным идентификатором. UId объекта можно получить из строки навигации браузера с открытой страницей редактирования записи раздела. var entity = esqResult.GetEntity(UserConnection, new Guid("100B6B13-E8BB-DF11-B00F-001D60E938C6")); // Получение значения колонки объекта. result += entity.GetColumnValue(colName.Name).ToString(); return result; }
Пример 2
Получение коллекции имен колонок схемы [City]
public IEnumerable<string> GetEntityColumns() { // Создание объекта строки данных схемы City (по идентификатору схемы, полученному из базы данных). var entity = new Entity(UserConnection, new Guid("5CA90B6A-93E7-4448-BEFE-AB5166EC2CFE")); // Получение из базы данных объекта с заданным идентификатором. UId объекта можно получить из строки навигации браузера с открытой страницей редактирования записи раздела. entity.FetchFromDB(new Guid("100B6B13-E8BB-DF11-B00F-001D60E938C6"),true); // Получение коллекции имен колонок объекта. var result = entity.GetColumnValueNames(); return result; }
Пример 3
Удаление из базы записи схемы [Order]
public bool DeleteEntity() { // Создание запроса к схеме Order, добавление в запрос всех колонок схемы. var esqResult = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "Order"); esqResult.AddAllSchemaColumns(); // Выполнение запроса к базе данных и получение объекта с заданным идентификатором. UId объекта можно получить из строки навигации браузера с открытой страницей редактирования записи раздела. var entity = esqResult.GetEntity(UserConnection, new Guid("e3bfa32f-3fe9-4bae-9332-16c162c51e0d")); // Удаление объекта из базы данных. entity.Delete(); // Проверка, существует ли в базе данных объект с заданным идентификатором. var result = entity.ExistInDB(new Guid("e3bfa32f-3fe9-4bae-9332-16c162c51e0d")); return result; }
Пример 4
Изменение статуса заказа
public bool UpdateEntity() { // Создание запроса к схеме Order, добавление в запрос всех колонок схемы. var esqResult = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "Order"); esqResult.AddAllSchemaColumns(); // Выполнение запроса к базе данных и получение объекта с заданным идентификатором. UId объекта можно получить из строки навигации браузера с открытой страницей редактирования записи раздела. var entity = esqResult.GetEntity(UserConnection, new Guid("58be5223-715d-4b16-a5c4-e3d4ec0412d9")); // Создание объекта строки данных схемы OrderStatus. var statusSchema = UserConnection.EntitySchemaManager.GetInstanceByName("OrderStatus"); var newStatus = statusSchema.CreateEntity(UserConnection); // Получение из базы данных объекта c заданным названием. newStatus.FetchFromDB("Name", "4. Completed"); // Присваивает колонке StatusId новое значение. entity.SetColumnValue("StatusId", newStatus.GetTypedColumnValue<Guid>("Id")); // Сохранение измененного объекта в базе данных. var result = entity.Save(); return result; }
Пример 5
Добавление города с указанным названием, привязав его к указанной стране
public bool InsertEntity(string city, string country) { city = city ?? "unknown city"; country = country ?? "unknown country"; var citySchema = UserConnection.EntitySchemaManager.GetInstanceByName("City"); var entity = citySchema.CreateEntity(UserConnection); entity.FetchFromDB("Name", city); // Устанавливает для колонок объекта значения по умолчанию. entity.SetDefColumnValues(); var contryEntity = new Entity(UserConnection, new Guid("09FCE1F8-515C-4296-95CD-8CD93F79A6CF")); contryEntity.FetchFromDB("Name", country); // Присваивает колонке Name переданное название города. entity.SetColumnValue("Name", city); // Присваивает колонке CountryId UId переданной страны. entity.SetColumnValue("CountryId", contryEntity.GetTypedColumnValue<Guid>("Id")); var result = entity.Save(); return result; }
Смотрите также: