Сохраняет данные производного класса класса в базу данных.
Пространство имён: Nemiro.Data.SqlСборка: Nemiro.Data (в Nemiro.Data.dll) Версия: 2.11.4.126 (2.11.4.126)
Синтаксис
Исключения
Исключение | Условие |
---|---|
NoPrimaryKeyOrUniqueFieldsException | Исключение возникает, если в производном классе не найдено ни одного свойства с флагами PrimaryKey или Unique. |
SqlException | Исключение возникает при возврате SQL Server предупреждения или ошибки. |
Заметки
Кэширование не используется. Значения свойств CacheDuration и Cache игнорируются.
Для сохранения объекта в базе данных используется один, динамически построенный, SQL-запрос.
Проверка существования данных в таблице производится при помощи оператора EXISTS на стороне SQL Server.
Запрос выглядит примерно так:
IF EXISTS(SELECT [id] FROM [tableName] WHERE [id] = @id) BEGIN UPDATE [tableName] SET [field1] = @field1, ... [field9] = @field9 WHERE [id] = @id; END ELSE BEGIN INSERT INTO [tableName] ([field1], ... [field9]) VALUES (@field1, ... @field9); -- используется только при наличии числовых идентификаторов -- для GUID ключ генерируется отдельно, если необходимо SELECT SCOPE_IDENTITY(); END;
См. также