publicclassDesignTimeDbContextFactory : IDesignTimeDbContextFactory<Repository>
{
public Repository CreateDbContext(string[] args) {
var connectionString = "Data Source=database.db";
var optionsBuilder = new DbContextOptionsBuilder<Repository>();
optionsBuilder.UseSqlite(connectionString);
returnnew Repository(optionsBuilder.Options);
}
}
Setting up Connection String and using it
12345678910111213141516171819202122232425
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Streak.Data;
publicclassProgram{
publicstaticvoidMain() {
var config = new ConfigurationBuilder()
.SetBasePath(System.IO.Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();
var connectionString = config.GetConnectionString("SQLiteConnection");
var options = new DbContextOptionsBuilder<Repository>()
.UseSqlite(connectionString)
.Options;
using (var context = new Repository(options))
{
// Perform CRUD operations here }
}
}
using Microsoft.EntityFrameworkCore;
namespaceCRUD;
publicclassUserGeneration{
publicvoidFillData() {
var options = new DbContextOptionsBuilder<Repository>()
.UseSqlite("Data Source=database.db")
.Options;
Console.Clear();
using (var context = new Repository(options))
{
for (var i = 0; i < 100; i++)
{
var user = new User
{
Id = Guid.NewGuid(),
UserName = Faker.Name.FullName(),
};
var userEntity = context.Users.Add(user);
context.SaveChanges();
// Create a new challenge Console.WriteLine($"{i} User Generated with id {user.Id}");
for (var k = 0; k < Faker.RandomNumber.Next(1, 7); k++)
{
var chlng = new Challenge
{
Id = Guid.NewGuid(),
Name = Faker.Lorem.Sentence(1),
DayCount = Faker.RandomNumber.Next(365),
StartDate = Faker.Identification.DateOfBirth(),
UserId = userEntity.Entity.Id
};
var challengeEntity = context.Challenges.Add(chlng);
context.SaveChanges();
Console.WriteLine($">>>> {k} Challenge Generated with id {chlng.Id}");
for (var j = 0; j < Faker.RandomNumber.Next(5, 10); j++)
{
var todo = new ToDo
{
Id = Guid.NewGuid(),
Description = Faker.Lorem.Paragraph(1),
ChallengeId = challengeEntity.Entity.Id
};
context.Add(todo);
Console.WriteLine($">>>>>>>>>>>>> {j} ToDoFor Generated with id {todo.Id}");
}
}
}
}
}
}