---
title: clsMenuCategoryCode
summary: API reference for clsMenuCategoryCode.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-17
library: SAIF.Business.Menu
reference_type: package
---

# clsMenuCategoryCode

Represents one menu category (`MENU_CATEGORY_CODE`) — a grouping code and display description used to cluster `clsMenuItem` rows on the rendered menu; each item's `MenuCategoryCode` foreign key is resolved to this type on demand ([BR-MENU-024](../../business-rules.md#br-menu-024-lazy-loaded-navigation-properties)).

## Purpose
- Owns the identity and description of one menu category code, persisted to [MENU_CATEGORY_CODE](../../database-tables.md#menu_category_code).
- Enforces [BR-MENU-015](../../business-rules.md#br-menu-015-natural-key-creation-for-codes) — the `Code` key is supplied by the caller rather than sequence-generated.

## Context
- Namespace: `SAIF.Business.Menu`
- Assembly/package: `SAIF.Business.Menu` (`SAIF.BOF.Presentation.Web.Infragistics111` NuGet package)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| Code | `Property Code As String` | The caller-supplied natural key identifying this category ([BR-MENU-015](../../business-rules.md#br-menu-015-natural-key-creation-for-codes)); maps to `CODE`. |
| Description | `Property Description As String` | Display label for the category, maps to `CODE_DESCR`. |
| NewMenuCategoryCode | `Shared Function NewMenuCategoryCode(dpi As IDataPortalInfo) As clsMenuCategoryCode` | Factory that creates a new, caller-keyed category code ready for `Save` ([BR-MENU-015](../../business-rules.md#br-menu-015-natural-key-creation-for-codes)). |
| GetMenuCategoryCode | `Shared Function GetMenuCategoryCode(dpi As IDataPortalInfo, code As String) As clsMenuCategoryCode` | Factory that retrieves one category code by its key ([SQL-017](../../sql/SQL-017-retrieve-menu-category-code-by-code.md)). |
| Save | `Sub Save()` | Persists the object via insert or update depending on new/dirty state ([BR-MENU-016](../../business-rules.md#br-menu-016-audit-stamp-on-insert-and-update), [BR-MENU-018](../../business-rules.md#br-menu-018-save-only-when-dirty)). |
| Delete | `Sub Delete()` | Removes the row and returns the object to a new, unsaved state ([BR-MENU-022](../../business-rules.md#br-menu-022-delete-returns-object-to-new-state)). |

## Inherited public members

Members in this section are inherited from `clsBusinessBase` in `SAIF.Framework.Core` (delivered by the `SAIF.BOF.Framework` package). They are available on this type through inheritance.

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| Rules | `ReadOnly Property Rules As clsRulesManager` | Exposes the object's rule manager, used to register and evaluate validation rules.† | `SAIF.Framework.Core` — `clsBusinessBase` |
| BeginEdit | `Sub BeginEdit()` | Begins an editable transaction on the object, snapshotting current state for a later cancel.† | `SAIF.Framework.Core` — `clsBusinessBase` |
| CancelEdit | `Sub CancelEdit()` | Reverts the object to the state captured by the most recent `BeginEdit`.† | `SAIF.Framework.Core` — `clsBusinessBase` |
| ApplyEdit | `Sub ApplyEdit()` | Commits the in-progress edit, discarding the `BeginEdit` snapshot.† | `SAIF.Framework.Core` — `clsBusinessBase` |
| SetPreviousLink | `Sub SetPreviousLink(item As ILinkItem)` | Sets the previous node in a doubly linked list of business objects.† | `SAIF.Framework.Core` — `clsBusinessBase` |
| SetNextLink | `Sub SetNextLink(item As ILinkItem)` | Sets the next node in a doubly linked list of business objects.† | `SAIF.Framework.Core` — `clsBusinessBase` |
| InsertLinkAfter | `Sub InsertLinkAfter(item As ILinkItem)` | Inserts the given item immediately after this object in a linked sequence.† | `SAIF.Framework.Core` — `clsBusinessBase` |

## Related documentation
- [Index](../../index.md)
- [Overview](../../overview.md)
- [Architecture](../../architecture.md)
- [Operations and processes](../../operations-processes.md)
- [Business rules](../../business-rules.md)
- [Database tables](../../database-tables.md)
- [API reference](../index.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with `†` were retrieved from dependency library documentation via the Legends CLI RAG service. They describe inherited behavior from the indicated origin library and should be verified if the dependency version changes.

## Sources
- SAIF.Business.Menu/clsMenuCategoryCode.vb
