Я проводил некоторые тесты с сервером 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, поэтому любая помощь и предложение приветствуются.