C# 如何使用EF Core CosmosDB provider维护唯一值

C# 如何使用EF Core CosmosDB provider维护唯一值,c#,asp.net-core,.net-core,azure-cosmosdb,ef-core-2.0,C#,Asp.net Core,.net Core,Azure Cosmosdb,Ef Core 2.0,我的班级看起来像: 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 vo

我的班级看起来像:

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");
}
公共类PortalAccount
{
公共Guid id{get;set;}
公共字符串PortalAccountName{get;set;}
public int-PortalAccountState{get;set;}
公共字符串地址{get;set;}
}
模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder)
{
modelBuilder.Entity().HasIndex(x=>new{x.Address,x.PortalAccountState
}).IsUnique();
modelBuilder.Entity().ToContainer(“PortalCount”).HasNodeDiscriminator().HasPartitionKey(“PortalCountName”);
}
当我试图创建一个PortalAccountState=1和Address=“Addr1”两次的记录时,它插入到Cosmos数据库中。它并没有限制我

注意:我尝试了
modelBuilder.Entity().hasaAlternateKey(x=>new{x.Address,x.PortalAccountState})
通过使用上述代码,它限制我不创建重复的记录,但在我尝试更新记录时,它会引发异常

我需要为创建和更新工作的代码。 有人能帮我解决这个问题吗