Skip to content

How can i set partition key from cosmosdb collection through entity framework core code first approach? #18397

@saitejaprattipati

Description

@saitejaprattipati

Partition key _partitionKey is generated by default which is not expected

My code is as follows:

public class sampleContext : DbContext
{
public sampleContext(DbContextOptions options) : base(options)
{
Database.EnsureCreated();
}

    protected sampleContext()
    {
        Database.EnsureCreated();
    }

    public DbSet<Address> Address { get; set; }


    protected override void OnModelCreating(ModelBuilder modelBuilder)
            {                    
                OneCollectionPerDbSet(modelBuilder);
            }

    private void OneCollectionPerDbSet(ModelBuilder modelBuilder)
    {
        var dbSets = typeof(sampleContext).GetProperties(BindingFlags.Public | BindingFlags.Instance)
            .Where(p => p.PropertyType.IsGenericType && typeof(DbSet<>).IsAssignableFrom(p.PropertyType.GetGenericTypeDefinition()));
        foreach (var dbSet in dbSets)
        {
            var metadata = modelBuilder.Entity(dbSet.PropertyType.GetGenericArguments()[0]).Metadata;
            metadata.Cosmos().ContainerName = dbSet.Name;
        }
    }
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions