Entity Framework Core возвращает null всегда, кроме случаев использования OrderBy? - PullRequest
0 голосов
/ 15 мая 2019

Я проводил некоторые тесты с сервером graphql.net, ядром asp.net, ядром ef и базой данных mssql в северном направлении.Несмотря на то, что при получении данных из базы данных у меня возникли проблемы, происходит то, что EF Core не возвращает необходимые данные.

Пример класса модели:

public partial class Categories
{        
    public int CategoryId { get; set; }
    public string CategoryName { get; set; }
    public string Description { get; set; }
    public byte[] Picture { get; set; }
    public ICollection<Products> Products { get; set; }
} 

Довольно прямолинейно, кстати, я использовал первый подход к БД, и он фактически генерируется с помощью инструмента скаффолдов из ef core.

Что я хочу сделать, так это то, что когда я запрашиваю категорию без аргументовв GraphQl, что он возвращает мне первый элемент в таблице (если я хочу запросить любой другой элемент, я бы сделал с другим методом, и это работает).

В моем резольвере graphql, когда я запрашиваю полев этом случае Category (я не хочу список категорий на данный момент), я обычно делал бы это действительно легко с помощью следующего кода:

public async Task<Categories> GetOne(int CategoryID)
{
    Categories category =
    await _dbContext.Categories.FirstOrDefaultAsync(
    c => c.CategoryId.Equals(CategoryID));
    return category;
}

Верхний код возвращает мнеnull, но что действительно странно, так это то, что следующий код также возвращает null:

Categories categories = await _dbContext.Categories
                                        .Where(c => c.CategoryId.Equals(CategoryID))
                                        .FirstOrDefaultAsync();

Единственный сценарий, в котором он работает, но не так, как ожидалось, потому что он фактически возвращает мне 2-й идентификатор изтаблицы, и все, что я добавляю в конце, будет то, что FirstAsync, SingleAsync или даже LastOrDefaultAsync результат всегда будет второй строкой таблицы, используя фрагмент кода:

Categories categories = await _dbContext.Categories
                                        .OrderBy(c => c.CategoryId.Equals(CategoryID))
                                        .FirstOrDefaultAsync();`

Ядовольно новый для структуры Entity, поэтому любая помощь и предложение приветствуются.

1 Ответ

0 голосов
/ 22 мая 2019

Таким образом, поведение EF Core было в порядке, но распознаватель graphql не был настроен должным образом. После пересмотра моего резольвера graphql настоящие методы сделали то, что должны были сделать.

Я очень благодарен за вклад, который все предоставили, и могу пометить это как решенный.

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