# System.Data.DataSetExtensions

**Kind:** Service

**Source:** `Pams/Core/Pams.Security/Pams.Security.csproj` (line 1)

**Part of:** [Pams](subsystem-pams)

NuGet package dependency

`System.Data.DataSetExtensions` is a NuGet package dependency declared by the `Pams.Security` project. It supplies extension methods for working with ADO.NET `DataSet`, `DataTable`, and related data objects used by legacy .NET data access code.

## Diagram

```mermaid
sequenceDiagram
    participant Build as Pams.Security Build
    participant Project as Pams.Security.csproj
    participant NuGet as NuGet Restore
    participant Package as System.Data.DataSetExtensions
    participant Runtime as Pams.Security Runtime

    Build->>Project: Read package dependency
    Project->>NuGet: Request package restore
    NuGet->>Package: Resolve package assets
    Package-->>NuGet: Return assembly reference
    NuGet-->>Build: Add reference to build
    Build->>Runtime: Load referenced assembly
```

## Usage

```typescript
import { readFileSync } from "node:fs";

const projectFile = "Pams/Core/Pams.Security/Pams.Security.csproj";
const projectXml = readFileSync(projectFile, "utf8");

const hasDataSetExtensions =
  projectXml.includes('Include="System.Data.DataSetExtensions"');

if (!hasDataSetExtensions) {
  throw new Error(
    "System.Data.DataSetExtensions package reference is missing from Pams.Security.csproj",
  );
}

console.log("System.Data.DataSetExtensions dependency is configured.");
```

## AI Coding Instructions

- Keep the `System.Data.DataSetExtensions` package reference in `Pams.Security.csproj` when code depends on `DataSet` or `DataTable` extension methods.
- Restore NuGet packages after changing the project file so the referenced assembly is available during build.
- Check existing data-access code before removing this dependency; legacy code may call extension methods supplied by the package.
- Keep package dependency changes scoped to the project file and verify affected .NET builds.
