Я проверил на моей стороне, однако все было хорошо на моей стороне.
Мой код:
Item.cs
Для воспроизведения вашей проблемы я использую «ID» вместо «id»
public class Item
{
public Item(string key, string content) => (this.key, this.content) = (key, content);
public string ID { get; set; } = Guid.NewGuid().ToString();
public string key { get; set; }
public string content { get; set; }
}
CosmosDBContext. cs
public class CosmosDBContext : DbContext
{
public CosmosDBContext(DbContextOptions<CosmosDBContext> options) : base(options)
{
}
public DbSet<Item> Items { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
// Set partition key, set container
modelBuilder.Entity<Item>().ToContainer("JackTest");
modelBuilder.Entity<Item>().HasKey("ID");
modelBuilder.Entity<Item>().HasPartitionKey("key");
}
}
Создать один элемент:
_cosmosDBContext.Items.Add(new Item("aaa", "abcdefg"));
_cosmosDBContext.SaveChanges(true);
Из проводника данных видно, что элемент создан:
И мы видим, что система сгенерирует «id» по умолчанию.
Обновить элемент
var item = _cosmosDBContext.Items.Where(i => i.content.Equals("abcdefg")).FirstOrDefault();
item.content = DateTime.Now.ToString("yyyy-MM-ddThh:mm:ss.fffZ") + item.content;
_cosmosDBContext.Update(item);
_cosmosDBContext.SaveChanges(true);
И элемент был обновлен: