Persistord.Adapters.DiscordNet
1.0.0-beta2
dotnet add package Persistord.Adapters.DiscordNet --version 1.0.0-beta2
NuGet\Install-Package Persistord.Adapters.DiscordNet -Version 1.0.0-beta2
<PackageReference Include="Persistord.Adapters.DiscordNet" Version="1.0.0-beta2" />
<PackageVersion Include="Persistord.Adapters.DiscordNet" Version="1.0.0-beta2" />
<PackageReference Include="Persistord.Adapters.DiscordNet" />
paket add Persistord.Adapters.DiscordNet --version 1.0.0-beta2
#r "nuget: Persistord.Adapters.DiscordNet, 1.0.0-beta2"
#:package Persistord.Adapters.DiscordNet@1.0.0-beta2
#addin nuget:?package=Persistord.Adapters.DiscordNet&version=1.0.0-beta2&prerelease
#tool nuget:?package=Persistord.Adapters.DiscordNet&version=1.0.0-beta2&prerelease
Persistord.Adapters.DiscordNet
<div align="center">
← Persistord docs · Documentation site
</div>
Opt-in adapter that maps Discord.Net interface types to Persistord entities.
Install only if you use Discord.Net — the core Persistord packages never reference a Discord client library.
dotnet add package Persistord.Adapters.DiscordNet
Usage
The adapter adds .To*Entity() extension methods on Discord.Net interfaces:
using Persistord.Adapters.DiscordNet;
using Persistord.History.Entities;
await using var db = await factory.CreateDbContextAsync();
db.Messages.Add(socketMessage.ToMessageEntity()); // embeds, attachments, reactions included
db.MessageHistory.Add(socketMessage.ToHistoryEntity(HistoryChangeType.Created));
await db.SaveChangesAsync();
All mappers:
| Method | Source | Target |
|---|---|---|
ToGuildEntity() |
IGuild |
GuildEntity |
ToChannelEntity() |
IGuildChannel |
ChannelEntity |
ToUserEntity() |
IUser |
UserEntity |
ToMemberEntity() |
IGuildUser |
MemberEntity |
ToRoleEntity() |
IRole |
RoleEntity |
ToMessageEntity() |
IMessage |
MessageEntity |
ToHistoryEntity(changeType) |
IMessage |
MessageHistoryEntity |
Mappers copy data fields only. Persistence-managed fields (MessageEntity.IsDeleted,
DeletedAt) and EF-generated surrogate keys are left at their defaults; child foreign
keys are filled by EF from the navigation collections on SaveChanges. Mappers tolerate
partial gateway data (null optional fields) and throw only on a null source argument.
Because they bind to Discord.Net interfaces, the mappers work for both gateway
(Socket*) and REST (Rest*) entities.
Versioning
This package declares a Discord.Net version range of [3.20.0, 4.0.0), so you may
upgrade Discord.Net freely within its current major version while a breaking 4.0
is held back. A new adapter release follows each Discord.Net breaking major.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Discord.Net (>= 3.20.1 && < 4.0.0)
- Persistord.Core (>= 1.0.0-beta2)
- Persistord.History (>= 1.0.0-beta2)
- Persistord.Messages (>= 1.0.0-beta2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0-beta2 | 59 | 7/20/2026 |
| 1.0.0-beta.1 | 67 | 6/14/2026 |