# System.Data.Linq

**Kind:** Service

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

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

NuGet package dependency

`System.Data.Linq` is a NuGet package dependency declared by `Pams/HelperTool/HelperTool.csproj`. It supplies LINQ to SQL types used by the HelperTool project for database mapping, query construction, and data-context access.

## Diagram

```mermaid
sequenceDiagram
    participant Build as Build Process
    participant Project as HelperTool.csproj
    participant NuGet as NuGet Restore
    participant Linq as System.Data.Linq
    participant Database as SQL Database

    Build->>Project: Load package dependency
    Project->>NuGet: Restore System.Data.Linq
    NuGet-->>Project: Resolve package assemblies
    Project->>Linq: Reference LINQ to SQL types
    Linq->>Database: Execute mapped queries
    Database-->>Linq: Return query results
```

## Usage

```ts
import { spawnSync } from "node:child_process";
import path from "node:path";

const projectFile = path.resolve(
  "Pams/HelperTool/HelperTool.csproj"
);

const result = spawnSync(
  "msbuild",
  [projectFile, "/t:Restore,Build"],
  { stdio: "inherit", shell: true }
);

if (result.status !== 0) {
  throw new Error("HelperTool build failed.");
}
```

## AI Coding Instructions

- Keep `System.Data.Linq` package configuration compatible with the legacy project format used by `HelperTool.csproj`.
- Restore NuGet dependencies before building or running tooling that depends on HelperTool assemblies.
- Use LINQ to SQL types only in code paths that target the project framework supported by `System.Data.Linq`.
- Check generated database mappings and connection configuration when changing LINQ to SQL queries.

## Used by

2 references from 2 files. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### Injected or called by (2)

- `Pams.Data` — `Pams/Data/Pams.Data/Pams.Data.csproj`:1
- `HelperTool` — `Pams/HelperTool/HelperTool.csproj`:1
