В моем .Net Core приложении я хранил данные в классе DataService
public class DataService
{
public List<Book> Books = new List<Book>()
{
new Book() { Id = 1, NumberOfPages = 30, AuthorId = 1, Title = "t1" },
new Book() { Id = 2, NumberOfPages = 20, AuthorId = 1, Title = "t2" },
new Book() { Id = 3, NumberOfPages = 10, AuthorId = 2, Title = "t3" },
new Book() { Id = 4, NumberOfPages = 50, AuthorId = 3, Title = "t4" },
};
public List<Author> Authors = new List<Author>()
{
new Author() { Id = 1, Age = "58", Name = "Stephen King" },
new Author() { Id = 2, Age = "70", Name = "Neil Stivenson" },
new Author() { Id = 3, Age = "63", Name = "Shul Vern" },
};
}
Но теперь хочу использовать Entity Framework и добавляю данные в базу. Установил MS SQL Management Studio и MS SQL Server. Таблицы создались, данные добавились
public static class DbInitializer
{
public static void Initialize(ApplicationContext context)
{
context.Database.EnsureCreated();
var authors = new Author[]
{
new Author { Age = "58", Name = "Stephen King" },
new Author { Age = "70", Name = "Neil Stivenson" },
new Author { Age = "63", Name = "Shul Vern" },
};
foreach (Author i in authors)
{
context.Authors.Add(i);
}
context.SaveChanges();
// Аналогично для Books
}
}
Но как теперь делать query и mutation в graphQL?
// Что подставлять вместо DataService?
public AppMutation(DataService data)
{
Field<AuthorType>(
"createAuthor",
arguments: new QueryArguments(
new QueryArgument<NonNullGraphType<AuthorInputType>> { Name = "author" }
),
resolve: context =>
{
var author = context.GetArgument<CreateAuthorModel>("author");
var author2 = new Author()
{
Id = data.Authors.Max(t => t.Id) + 1,
Age = author.AuthorAge,
Name = author.AuthorName
};
data.Authors.Add(author2);
return author2;
});
}
Edit1
public class ApplicationContext : DbContext
{
public ApplicationContext(DbContextOptions<ApplicationContext> options)
: base(options)
{
}
public DbSet<Book> Books { get; set; }
public DbSet<Author> Authors { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Book>().ToTable("Book");
modelBuilder.Entity<Author>().ToTable("Author");
}
}
Передавайте ваш контекст в нужный вам метод
public AppMutation(ApplicationContext data) {...}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть 5x5 матрица квадратов в произвольной части экранаКак найти координаты (x, y) в центре каждого квадрата?
Передаю данные из первой формы во вторую Выдает ошибку: Ссылка на объект не указывает на экземпляр объекта
Очень желательно найти способ определения репликации mysql-базы на мастере с наиболее меньшим количеством прав к базеНужно учесть, что настройки...
В PHP создаётся массив $result5, в который записываются поля из базы данныхИмеются две кнопки, при нажатии на кнопку "Уже знаю" в jquery нужно выбрать...