c# - 如何使用 EF Core CosmosDB 提供程序维护唯一值
问题描述
我的课看起来像:
public class PortalAccount
{
public Guid id{ get; set; }
public string PortalAccountName { get; set; }
public int PortalAccountState { get; set; }
public string Address { get; set; }
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<PortalAccount>().HasIndex(x => new { x.Address, x.PortalAccountState
}).IsUnique();
modelBuilder.Entity<PortalAccount>().ToContainer("PortalAccount").HasNoDiscriminator().HasPartitionKey("PortalAccountName");
}
当我尝试使用 PortalAccountState = 1 和 Address = "Addr1" 两次创建记录时,它正在插入 Cosmos 数据库中。它并没有限制我..
注意:我尝试使用 modelBuilder.Entity<PortalAccount>().HasAlternateKey(x => new { x.Address, x.PortalAccountState });
.
通过使用上面的代码,它限制我不要创建重复的记录,但是当我试图更新记录时它会抛出异常。
我需要为创建和更新工作代码。有人可以帮我解决这个问题吗?
解决方案
推荐阅读
- javascript - JavaScript - Spotify API,获取播放列表曲目
- amazon-web-services - VPC 连接到 VPC Elasticsearch 集群端口 9200 无响应
- scala - 是否有可能从 spark-submit 设置 spark.scheduler.pool (本地属性)
- javascript - 如何实现嵌套注释的递归逻辑?
- python - Python-从文件中检索信息-结构问题
- php - 跳过 preg_match_all 中的值
- powershell - 运行进程 AsJob 丢失信息
- hive - 如何将文件的行号添加到 Hive 表中
- java - 使用链表在静态类错误中使用非静态变量
- python - Django过滤器排除外键