Devlooped.TableStorage.MessagePack 5.2.0

前缀已预留
dotnet add package Devlooped.TableStorage.MessagePack --version 5.2.0                
NuGet\Install-Package Devlooped.TableStorage.MessagePack -Version 5.2.0                
该命令旨在在Visual Studio的包管理器控制台中使用,因为它使用了NuGet模块的Install-Package版本。
<PackageReference Include="Devlooped.TableStorage.MessagePack" Version="5.2.0" />                
对于支持PackageReference的项目,请将此XML节点复制到项目文件中以引用该包。
paket add Devlooped.TableStorage.MessagePack --version 5.2.0                
#r "nuget: Devlooped.TableStorage.MessagePack, 5.2.0"                
#r指令可用于F# Interactive和Polyglot Notebooks。将此内容复制到交互式工具或脚本的源代码中以引用包。
// Install Devlooped.TableStorage.MessagePack as a Cake Addin
#addin nuget:?package=Devlooped.TableStorage.MessagePack&version=5.2.0

// Install Devlooped.TableStorage.MessagePack as a Cake Tool
#tool nuget:?package=Devlooped.TableStorage.MessagePack&version=5.2.0                

用于与基于文档的仓库一起使用的MessagePack二进制序列化程序。

用法

  var repo = DocumentRepository.Create<Product>(..., serializer: MessagePackDocumentSerializer.Default);

注意:必须像通常那样使用MessagePack属性,才能使序列化正常工作。

文档存储

DocumentRepository.CreateDocumentPartition.Create工厂方法提供了对基于文档的存储的访问,并公开类似于基于列的存储的API。

文档仓库会导致实体以单个文档列的形式保留,以及类型和版本信息,以便在应用程序级别处理版本控制。

API大多是针对基于列的仓库相同的(文档仓库实现了相同的底层ITableStorage接口)。

public record Product(string Category, string Id) 
{
  public string? Title { get; init; }
  public double Price { get; init; }
  public DateOnly CreatedAt { get; init; }
}

var book = new Product("book", "9781473217386")
{
    Title = "Neuromancer",
    Price = 7.32
};

// Column-based storage
var repo = TableRepository.Create<Product>(
    CloudStorageAccount.DevelopmentStorageAccount,
    tableName: "Products",
    partitionKey: p => p.Category,
    rowKey: p => p.Id);

await repo.PutAsync(book);

// Document-based storage
var docs = DocumentRepository.Create<Product>(
    CloudStorageAccount.DevelopmentStorageAccount,
    tableName: "Documents",
    partitionKey: p => p.Category,
    rowKey: p => p.Id
    serializer: [SERIALIZER]);

await docs.PutAsync(book);

如果没有提供,序列化程序默认为基于System.Text.JsonDocumentSerializer.Default

存储结果差异可以在以下Azure Storage Explorer的屏幕截图中看到

Screenshot of entity persisted with separate columns for properties

Screenshot of entity persisted as a document

在文档表中持续存在的Type列是持久化实体的Type.FullName,而Version是其程序集的[主].[次]版本,这可以用于高级数据迁移场景。主版本和次版本组成部分也被作为单独的列提供,以便使用IDocumentRepository.EnumerateAsync(predicate)更轻松地按各种版本范围进行查询。

赞助商

Clarius Org Kirill Osenkov MFB Technologies, Inc. Stephen Shaw Torutek DRIVE.NET, Inc. Ashley Medway Keith Pickford Thomas Bolon Kori Francis Toni Wenzel Giorgi Dalakishvili Uno Platform Dan Siegel Reuben Swartz Jacob Foshee alternate text is missing from this package README image Eric Johnson Ix Technologies B.V. David JENNI Jonathan Oleg Kyrylchuk Charley Wu Jakob Tikjøb Andersen Seann Alexander Tino Hager Mark Seemann Ken Bonny Simon Cropp agileworks-eu sorahex Zheyu Shen Vezel ChilliCream 4OTC

赞助此项目  

了解更多关于GitHub赞助信息

产品 兼容和额外的目标框架计算版本。
.NET net5.0已计算。 net5.0-windows已计算。 net6.0兼容。 net6.0-android已计算。 net6.0-ios已计算。 net6.0-maccatalyst已计算。 net6.0-macos已计算。 net6.0-tvos已计算。 net6.0-windows已计算。 net7.0已计算。 net7.0-android已计算。 net7.0-ios已计算。 net7.0-maccatalyst已计算。 net7.0-macos已计算。 net7.0-tvos已计算。 net7.0-windows已计算。 net8.0已计算。 net8.0-android已计算。 net8.0-browser已计算。 net8.0-ios已计算。 net8.0-maccatalyst已计算。 net8.0-macos已计算。 net8.0-tvos已计算。 net8.0-windows已计算。
.NET Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。
.NET 标准 netstandard2.0 兼容。 netstandard2.1 已计算。
.NET 框架 net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容的目标框架
包含的目标框架(在包中)
关于 目标框架.NET 标准 的更多信息。

NuGet 包

本包未被任何 NuGet 包使用。

GitHub 仓库

本包未被任何流行的 GitHub 仓库使用。

版本 下载 最后更新
5.2.0 59 7/24/2024
5.2.0-rc.1 44 7/13/2024
5.2.0-rc 62 7/10/2024
5.2.0-beta 73 7/6/2024
5.1.2 121 1/25/2024
5.1.1 166 10/4/2023
5.1.0 162 8/11/2023
5.0.2 137 8/8/2023
5.0.1 150 7/25/2023
5.0.0 137 7/25/2023
4.3.1 150 7/24/2023
4.3.0 142 6/27/2023
4.2.1 165 4/17/2023
4.2.0 179 3/28/2023
4.1.3 275 1/20/2023
4.1.2 271 1/16/2023
4.0.0 359 8/26/2022
4.0.0-rc.1 95 8/26/2022
4.0.0-rc 150 8/15/2022
4.0.0-beta 154 5/17/2022
4.0.0-alpha 143 5/4/2022
3.2.0 550 12/13/2021
3.1.1 399 8/29/2021
3.1.0 376 8/13/2021
3.0.3 414 7/28/2021
3.0.2 354 7/1/2021
3.0.1 429 7/1/2021
3.0.0 373 7/1/2021
2.0.2 386 6/23/2021
2.0.1 405 6/17/2021
2.0.0 443 6/16/2021
1.3.0 405 5/31/2021