Как сохранить уникальные ценности с помощью провайдера EF Core CosmosDB - PullRequest
0 голосов
/ 19 марта 2020

Мой класс выглядит так:

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 });.
. Используя приведенный выше код, он не позволяет мне создавать дубликаты записей, но в то время как я пытаюсь обновить запись, ее исключение выдается.

Мне нужно работать код для создания и обновления. Может ли кто-нибудь помочь мне с этим вопросом ??

...