Maison >développement back-end >Tutoriel C#.Net >Comment utiliser Bogus pour créer des données simulées en C#
Bogus, un générateur de données simple basé sur C#. Pour utiliser Bogus pour générer des données de simulation, il vous suffit de définir les règles et de générer des données, c'est aussi simple que cela. Et Bogus peut générer des données fixes ou des données changeantes. Ainsi, une fois que vous obtenez les données, vous pouvez les sérialiser dans le format souhaité : json, xml, base de données ou fichier texte.
Afin de générer des données de simulation, nous devons d'abord créer la classe d'entité correspondante pour les données de simulation. Ici, nous pouvons créer un programme en ligne de commande et ajouter deux classes.
public class Customer { public Guid Id { get; set; } public string Name { get; set; } public string Address { get; set; } public string City { get; set; } public string Country { get; set; } public string ZipCode { get; set; } public string Phone { get; set; } public string Email { get; set; } public string ContactName { get; set; } public IEnumerable<Order> Orders { get; set; } }rrree
Après avoir créé les deux classes d'entités ci-dessus, vous pouvez ajouter un entrepôt pour obtenir des données simulées. Pour utiliser Bogus, vous pouvez utiliser Nuget pour ajouter la bibliothèque Bogus à votre projet.
Install-Package Bogus
Tutoriels associés : Tutoriel vidéo C#
Nous pouvons maintenant ajouter une classe d'entreposage Obtenez une simulation. données. Ici, nous ajoutons une classe SampleCustomerRepository
et ajoutons les méthodes suivantes.
public class Order { public Guid Id { get; set; } public DateTime Date { get; set; } public Decimal OrderValue { get; set; } public bool Shipped { get; set; } }
Dans la troisième ligne de code ici, nous spécifions une graine aléatoire fixe pour l'attribut
Randomizer.Seed
, donc les données générées sont les mêmes à chaque fois. Si vous ne souhaitez pas générer des données fixes à chaque fois, vous pouvez supprimer cette ligne de code.
Ici, nous définissons des règles pour la génération des données de commande et des clients, puis nous appelons la méthode Generate
pour générer des données de simulation. C'est aussi simple que cela.
Comme vu ci-dessus, Bogus propose de nombreuses classes pour générer des données. Par exemple, la classe Company
peut être utilisée pour générer des données de simulation d'entreprise, telles que le nom de l'entreprise. Vous pouvez utiliser ces données générées comme données de simulation pour votre programme. Il existe 3 scénarios d'utilisation de ces données
Mais je suis sûr que vous pouvez trouver plus de scénarios d'utilisation.
Afin d'utiliser ces données ici, vous pouvez ajouter le code suivant dans la méthode Main
public IEnumerable<Customer> GetCustomers() { Randomizer.Seed = new Random(123456); var ordergenerator = new Faker<Order>() .RuleFor(o => o.Id, Guid.NewGuid) .RuleFor(o => o.Date, f => f.Date.Past(3)) .RuleFor(o => o.OrderValue, f => f.Finance.Amount(0, 10000)) .RuleFor(o => o.Shipped, f => f.Random.Bool(0.9f)); var customerGenerator = new Faker<Customer>() .RuleFor(c => c.Id, Guid.NewGuid()) .RuleFor(c => c.Name, f => f.Company.CompanyName()) .RuleFor(c => c.Address, f => f.Address.FullAddress()) .RuleFor(c => c.City, f => f.Address.City()) .RuleFor(c => c.Country, f => f.Address.Country()) .RuleFor(c => c.ZipCode, f => f.Address.ZipCode()) .RuleFor(c => c.Phone, f => f.Phone.PhoneNumber()) .RuleFor(c => c.Email, f => f.Internet.Email()) .RuleFor(c => c.ContactName, (f, c) => f.Name.FullName()) .RuleFor(c => c.Orders, f => ordergenerator.Generate(f.Random.Number(10)).ToList()); return customerGenerator.Generate(100); }
Ici, nous convertissons les données de simulation en une chaîne Json, vous devez donc ici ajouter le Newtonsoft.Json
Référence à la bibliothèque. Après avoir exécuté le programme, vous obtiendrez les résultats suivants.
Comme vous pouvez le voir ci-dessus, le programme génère un ensemble de données client avec toutes les informations de commande pour chaque client.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!