Проблема при получении данных для сбора в Azure CosmosDB - PullRequest
0 голосов
/ 22 января 2020

Я использую asp. net core 3.1 и AzureCosmosDB, EntityFrameworkCore3.1 для разработки RESTAPI.

Данные коллекции CosmosDB для коллекции приведены ниже:

CountryGroups:

{
    "CountryGroupId": 197,
    "IsPublished": true,
    "CreatedBy": "test",
    "CreatedDate": "5/10/2018 1:35:39 PM",
    "UpdatedBy": "test",
    "UpdatedDate": "5/10/2018 1:35:39 PM",
    "CountryGroupContentId": 2001,
    "LanguageId": 37,
    "GroupName": " International",
    "AssociatedCountryIds": [
        110,
        111
    ],
    "Discriminator": "CountryGroups",
    "id": "889b6f66-d4a6-439e-9de4-1fd5a3f631c8",
    "_rid": "hKpmAPIni4cDAAAAAAAAAA==",
    "_self": "dbs/hKpmAA==/colls/hKpmAPIni4c=/docs/hKpmAPIni4cDAAAAAAAAAA==/",
    "_etag": "\"8b0082ea-0000-0100-0000-5e283ec60000\"",
    "_attachments": "attachments/",
    "_ts": 1579695814
}

DemoDBContext.cs

public class DemoDbContext : DbContext
{
    public DemoDbContext(DbContextOptions<DemoDbContext> options): base(options)
    {
    //Database.EnsureCreated();
    }

    protected DemoDbContext()
    {
    //Database.EnsureCreated();
    }

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

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

    private void OneCollectionPerDbSet(ModelBuilder modelBuilder)
    {
        var dbSets = typeof(DemoDbContext).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.SetContainer(dbSet.Name);
        }
    }
}

CountryGroup.cs

public class CountryGroups
{
    public string id
    {
        get;
        set;
    }

    public int CountryGroupId
    {
        get;
        set;
    }

    public bool IsPublished
    {
        get;
        set;
    }

    public string CreatedBy
    {
        get;
        set;
    }

    public string CreatedDate
    {
        get;
        set;
    }

    public string UpdatedBy
    {
        get;
        set;
    }

    public string UpdatedDate
    {
        get;
        set;
    }

    public string CountryGroupContentId
    {
        get;
        set;
    }

    public int LanguageId
    {
        get;
        set;
    }

    public string GroupName
    {
        get;
        set;
    }

    public List<CountryList> AssociatedCountryIds
    {
        get;
        set;
    }
}

public class CountryList
{
    public string id
    {
        get;
        set;
    }
}

CountryGroupRepository.cs

private async Task<CountryGroupResult> GetCountryGroupsDataAsync()
{
    var countryGroups = await _dbContext.CountryGroups.ToListAsync();
}

При отладке вышеприведенного кода я вижу, что в переменной countryGroups есть все, кроме свойства AssociatedCountryIds.

AssociatedCountryIds возвращает нулевое значение.

Может кто-нибудь помочь мне узнать, как решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...