public static void InitializeAccountSchema(GraphQLSchema<MemContext> schema)
{
var account = schema.AddType<Account>();
account.AddField(a => a.Id);
account.AddField(a => a.Name);
account.AddField(a => a.Paid);
account.AddField(a => a.SomeGuid);
account.AddField(a => a.ByteArray);
account.AddListField(a => a.Users);
account.AddListField("activeUsers", (db, a) => a.Users.Where(u => u.Active));
account.AddListField("usersWithActive", new { active = false }, (db, args, a) => a.Users.Where(u => u.Active == args.active));
account.AddField("firstUserWithActive", new { active = false }, (db, args, a) => a.Users.FirstOrDefault(u => u.Active == args.active));
schema.AddField("account", new { id = 0 }, (db, args) => db.Accounts.AsQueryable().FirstOrDefault(a => a.Id == args.id));
schema.AddField
("accountPaidBy", new { paid = default(DateTime) },
(db, args) => db.Accounts.AsQueryable().FirstOrDefault(a => a.PaidUtc <= args.paid));
schema.AddListField("accountsByGuid", new { guid = Guid.Empty },
(db, args) => db.Accounts.AsQueryable().Where(a => a.SomeGuid == args.guid));
}