Сложный
На заметку. Примеры 1-5, приведенные в этой статье, реализованы в веб-сервисе. Пакет с реализацией веб-сервиса прикреплен в блоке "Ресурсы".
Пример 1
Пример. Получить значение колонки схемы City с именем Name.
Метод GetEntityColumnData
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.
Метод GetEntityColumns
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.
Метод DeleteEntity
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
Пример. Изменить статус заказа.
Метод UpdateEntity
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
Пример. Добавить город с указанным названием, привязав его к указанной стране.
Метод UpdateEntity
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;
}
Пример 6
Пример. Создать контакт с именем "User01".
EntitySchema contactSchema = UserConnection.EntitySchemaManager.GetInstanceByName("Contact");
Entity contactEntity = contactSchema.CreateEntity(UserConnection);
contactEntity.SetDefColumnValues();
contactEntity.SetColumnValue("Name", "User01");
contactEntity.Save();
Пример 7
Пример. Изменить имя контакта на "User02".
EntitySchema entitySchema = UserConnection.EntitySchemaManager.GetInstanceByName("Contact");
Entity entity = entitySchema.CreateEntity(UserConnection);
if (!entity.FetchFromDB(some_id) {
return false;
}
entity.SetColumnValue("Name", "User02");
return entity.Save();
Пример 8
Пример. Удалить контакт с именем "User02".
EntitySchema entitySchema = UserConnection.EntitySchemaManager.GetInstanceByName("Contact");
Entity entity = entitySchema.CreateEntity(UserConnection);
var fetchConditions = new Dictionary<string, object> {
{"Name", "User02"}
};
if (entity.FetchFromDB(fetchConditions)) {
entity.Delete();
}