DataSource.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using Vitorm.Sql;
  2. using Vit.Extensions;
  3. namespace Vitorm.MsTest
  4. {
  5. [System.ComponentModel.DataAnnotations.Schema.Table("User")]
  6. public class User
  7. {
  8. [System.ComponentModel.DataAnnotations.Key]
  9. public int id { get; set; }
  10. public string name { get; set; }
  11. public DateTime? birth { get; set; }
  12. public int? fatherId { get; set; }
  13. public int? motherId { get; set; }
  14. }
  15. public class DataSource
  16. {
  17. public static SqlDbContext CreateDbContext()
  18. {
  19. var guid = Guid.NewGuid().ToString();
  20. var filePath = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, $"{guid}.sqlite.db");
  21. if (File.Exists(filePath)) File.Delete(filePath);
  22. File.WriteAllBytes(filePath, new byte[0]);
  23. var connectionString = $"data source={filePath}";
  24. var dbContext = new SqlDbContext();
  25. dbContext.UseSqlite(connectionString);
  26. dbContext.BeginTransaction();
  27. var userSet = dbContext.DbSet<User>();
  28. userSet.Create();
  29. var users = new List<User> {
  30. new User { id=1, name="u146", fatherId=4, motherId=6 },
  31. new User { id=2, name="u246", fatherId=4, motherId=6 },
  32. new User { id=3, name="u356", fatherId=5, motherId=6 },
  33. new User { id=4, name="u400" },
  34. new User { id=5, name="u500" },
  35. new User { id=6, name="u600" },
  36. };
  37. users.ForEach(user => { user.birth = DateTime.Parse("2021-01-01 00:00:00").AddHours(user.id); });
  38. dbContext.AddRange(users);
  39. return dbContext;
  40. }
  41. }
  42. }