- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有以下实体的 Azure 表存储:
SampleEntity : TableEntity
{
public int EmployeeId{get; set;}
}
我已经向表中插入了 100 条记录。现在我的要求发生了变化,EmployeeID 应该是字符串。另外,我不应该删除已插入的现有 100 条记录。因此,我更改了现有的 SampleEntity,如下所示:
SampleEntity : TableEntity
{
public string EmployeeId{get; set;}
}
我已将 50 行插入表中,其中 EmployeeId 作为字符串。
现在,当我使用新 SampleEntity(带有字符串 EmployeeID)对表执行 GetOperation 时,我得到 150 行,但使用旧 SampleEntity 插入的前 100 行的 EmployeeID 值是0.
另一方面,如果我切换到旧 SampleEntity 并执行 GetOperaiton,则使用新 SampleEntity 插入的 50 行的 EmployeeID 将为空值。
如何使用新的示例实体来获取字符串中包含 EmployeeId 值的所有 150 行?
最佳答案
您可以做的是将Integer
类型EmployeeId的数据类型更改为String
。为此,您需要做的是将所有实体作为 DynamicTableEntity
获取,并检查 EmployeeId
属性的属性类型。如果类型为 Int32
,您将创建一个具有 String
类型 EmployeeId
属性的新实体,并将其值设置为旧实体的 EmployeeId
值,然后更新现有实体(您将保留相同的 PartitionKey
和 RowKey
)。
请参阅下面的示例代码:
//Get all entities and make sure we get them as dynamic table entity.
var query = new TableQuery();
var allEntities = table.ExecuteQuery(query);
foreach (var entity in allEntities)
{
var propertyType = entity.Properties["EmployeeId"].PropertyType;
if (propertyType == EdmType.Int32 && entity.Properties["EmployeeId"].Int32Value.HasValue)
{
//This is an entity with Integer type EmployeeId. What we need to do is update this entity with a new entity where data type of EmployeeId is String.
var employeeId = entity.Properties["EmployeeId"].Int32Value.Value;
var newEntityWithStringType = new DynamicTableEntity()
{
PartitionKey = entity.PartitionKey,
RowKey = entity.RowKey,
ETag = "*"
};
newEntityWithStringType.Properties.Add("EmployeeId", new EntityProperty(employeeId.ToString()));
TableOperation updateOperation = TableOperation.Replace(newEntityWithStringType);
table.Execute(updateOperation);
}
}
上面的代码假设您只有一个属性 EmployeeId
。如果还有更多属性,请确保将它们包含在 newEntityWithStringType
属性中。
关于Azure 表存储升级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26295254/
我几乎不敢在这里问这个问题,因为它似乎应该很容易通过谷歌或 ravendb.net 获得。但是,我一直很难找到将我的 RavenDB 升级到新版本的正确方法。我目前正在运行 573 版并希望升级到 6
这周我需要升级当前版本的 DNN。我目前使用的是 2.1.1。我不想每件事都做两次,所以,我有几个问题。 是否有升级工具或某些脚本可以帮助我进行升级。 我最好安装 4.9 还是 5.0。这是生产。 如
将 Sugarcrm 从 6.2 升级到 6.3 版本时遇到问题。当我升级本地 Sugarcrm 安装时,它可以工作,但是当我开始升级我的 Sugarcrm 6.2 站点并上传升级包时,它不会上传。
有没有办法绕过 Meteor 的自动更新功能?我坚持 Downloading meteor-tool@1.3.0_3... \ 当我尝试运行现有项目,或创建一个新项目或只是运行“
我已将应用内集成到我的 Andorid 应用程序中,用于单个产品 productone。 为此,我在我的 Google Play 控制台中创建了不同的产品 ID,如下所示: 1。 productone
我在将 TeamCity 版本 2017.1.1 升级到 2017.1.2 时遇到问题。这个问题涉及 TeamCity 和 PostgreSQL 的工作。我的工作: 停止 teamcity 进程 /e
我寻找了这个问题的具体答案,但找不到——即使是在 WAMPSERVER 网站上也是如此。我确定我忽略了它。 我有 Wampserver 2.0、MySQL 5.0.51b、PHP 5.2.6 和 Ap
我使用 Ubuntu 软件中心默认的 Eclipse 3.7。 我想将 Eclipse 升级到 kepler 版本,所以我添加了 repository 我收到以下错误消息: Cannot comple
你好 我只想安装 mercurial,但对于它需要 python 2.6 的所有版本,我尝试使用 .rpm 文件,但我唯一得到的是很多充满错误的行,它告诉我:需要安装在 2.6 之前和 2.5 之后的
我完全知道 Gradle 网站上有一些页面说明了如何升级,但仅限于 4.x 及更高版本。 我正在尝试关注 tutorial制作一个简单的“我的第一个”Minecraft 模组。在其中,您被告知安装 f
我们想升级 Kerberos(服务器和客户端) 当前:1.6.3-133.27.1 目标:1.6.3-133.49.97.1 问题是如果我们用包管理器升级它,下面会发生什么? KDC 数据库 所有主要
背景 原计划 2019 年发布的 Vue3,又经过一年的再次打磨,终于于去年 9 月正式发布。随后,不少 UI 组件库都积极参与适配,去年 12 月,Element-plus(
我有一个版本为 2.3.4 的 grails 项目,我需要尽可能升级到最新版本。查看文档我意识到从 2.x 到 3.x 有巨大的变化。 问题是:从 2 到 3、从 3 到 4、从 4 到 5 逐步升级
我正在将 API 项目从 .net5 升级到 .net6 它以前工作,现在它崩溃 内部异常消息“抛出了‘Unity.Exceptions.InvalidRegistrationException’类型
我将我的项目从 expo 44 升级到 expo 45,现在我有无数这样的错误: The module 'MaterialIcons' can't be used as JSX component.
我已经升级了掌 Helm 模板(手动) 以前的片段depoloyment.yaml : apiVersion: apps/v1beta2 kind: Deployment metadata: na
我正在尝试将我的 Scala Play Framework 应用程序升级到 2.8,这涉及将 SBT 升级到 1.x。 在我的 build.propeties 我有 sbt.version=1.3.5
我想在我的 Windows 服务器上安装 PHPUnit 3.7。我遵循了各种说明 here并以 PHPUnit 3.4.1 结束。当我尝试使用以下方法再次安装它时: pear update chan
Microsoft.Net 4.5 即将推出,我想在 MS 发布最终版本时升级我的 clickonce 应用程序。 我的问题是:已经安装了 clickonce 应用程序(使用 .net 4.0)的用户
为了将 Angular 8 更新到 9,我正在按照官方文档升级。 这建议首先更新到最新版本的 angular 8,例如: ng update @angular/core@8 @angular/cli@
我是一名优秀的程序员,十分优秀!