gpt4 book ai didi

c# - 使用存储库模式将 DynamicTableEntity 写入 Azure 表存储时出现问题

转载 作者:太空宇宙 更新时间:2023-11-03 15:44:08 25 4
gpt4 key购买 nike

上下文:

我的目标是拥有几个 DynamicTableEntity,它们在 Azure 表存储中拥有各自的表。这样,如果系统需要,实体可以动态地精细地添加字段。

目前,我正在使用存储库模式与我的(非动态)TableEntities 交互/创建表。在存储库构造函数中,我使用这些行:

Table = TableClient.GetTableReference(typeof(TEntity).Name);
Table.CreateIfNotExists();

获取实体各自的表,如果尚不存在,则使用提供的 TEntity 名称创建它。 (TEntity 被限制为 ITableEntity)。

问题:

如果表存储的名称派生自提供的 TEntity.Name,并且 DynamicTableEntity 是无法继承的密封类,则我无法为我的 Azure 表指定名称。对 DynamicTableEntity 的任何使用最终都会使用名为“DynamicTableEntity”的同一个表。

你能想到我可以指定一个表名吗?我考虑过将 DynamicTableEntity 包装在一个类中并查看属性

最佳答案

在将强类型实体转换为 DynamicTableEntity 的组件内,您可以使用相同的值 (typeof(TEntity).Name) 将 Name 属性添加到 DynamicTableEntity。然后,您可以使用此 Name 属性的值来决定表。

在反向转换中,如果您想将 DynamicTableEntity 转换回强类型,您可以删除该 Name 属性。

您可能还想将该名称与表引用映射到 Web 配置/应用程序配置文件中。

关于c# - 使用存储库模式将 DynamicTableEntity 写入 Azure 表存储时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28947558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com