none
Testdaten generieren RRS feed

  • Frage

  • Hallo zusammen,

    kennt jemand eine ein Stück Software lauffähig unter .Core mit dem ich Testdaten zum füllen einer ERP Datenbank generieren kann. 

    Möchte mir gerne ersparen Entities von Hand anzulegen.

    Danke im voraus

    Peter


    Sonntag, 22. September 2019 17:13

Antworten

  • Du könntest den Entity Framework Code-First ansatz nutzen wie hier beschrieben Link

    Ich überschreibe in diesem einfach Beispiel die OnModelCreating Methode und erzeuge Testdaten

    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                using (var db = new MyDataDb())
                {
                    db.Database.Migrate();
    
                    var d = db.MyDatas.ToList();
                }
            }
        }
    
        public class MyData
        {
            public int MyDataId { get; set; }
            public string Foo { get; set; }
            public string Bar { get; set; }
        }
    
        public class MyDataDb : DbContext
        {
            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                optionsBuilder.UseSqlite("Data Source=AppFlyer.db");
            }
    
            protected override void OnModelCreating(ModelBuilder builder)
            {
                //Test daten
                builder.Entity<MyData>().HasData(
                        new MyData[]
                        {
                            new MyData() { MyDataId = 1, Foo = "Foo", Bar = "Bar" },
                            new MyData() { MyDataId = 2, Foo = "Foo", Bar = "Bar" },
                            new MyData() { MyDataId = 3, Foo = "Foo", Bar = "Bar" }
                        }
                    );
    
                base.OnModelCreating(builder);
            }
    
            public DbSet<MyData> MyDatas { get; set; }
        }
    }


    Gruß Thomas
    13 Millionen Schweine landen jährlich im Müll
    Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings

    Dienstag, 24. September 2019 11:36

Alle Antworten

  • Hallo Peter,

    da es viele Wege gibt, wie .NET Core mit einer Datenbank interagieren kann. Welchen Weg willst Du da gehen? EF.Core? SqlConnection, SqlCommand? Was anderes?

    Evtl. ist GenFu Awesome Test Data was für dich? Ein Anwendungsbeispiel findest Du bei Jürgen Gutsch.

    Welche Ziel DBMS sprichst Du an? Microsoft SQL Server? Falls ja, wäre evtl. der Red Gate SQL Data Generator was. Da wird das allerdings auf SQL Ebene gemacht, nicht mit .NET Core.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport



    Sonntag, 22. September 2019 18:25
    Moderator
  • Hallo Stefan,

    danke für deine Antwort.

    Aber ich bräuchte das schon in Net.Core, auf NET 4.xx habe ich das ja, läuft allerdings nicht auf .Core.....

    Vielleicht finde ich ja noch was.

    Danke

    Peter

    Montag, 23. September 2019 13:21
  • Hallo,

    deine Fragestellung ist zu allgemein. Wenn Du ein Vorschlag von uns haben willst, solltest Du Stefans Fragen beantworten. Wie Stefan es schon angemerkt hat gibt es viele Wege


    Gruß Thomas
    13 Millionen Schweine landen jährlich im Müll
    Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings

    Montag, 23. September 2019 19:53
  • Grüß Euch,

    ok,

    was ich möchte:

    Wärend der Entwicklung meine Datenbank regelmäßig neu anlegen um immer den selben Datenbestand zu haben.

    Bisher, unter NET 4.6  verwende ich https://github.com/nbuilder/nbuilder, übrigens sehr zu empfehlen. Dieses Tool läuft aber nicht unter NT.Core. 

    Ich suche daher was ähnliches das unter NET.Core läuft.

    Peter

    Dienstag, 24. September 2019 07:13
  • Du könntest den Entity Framework Code-First ansatz nutzen wie hier beschrieben Link

    Ich überschreibe in diesem einfach Beispiel die OnModelCreating Methode und erzeuge Testdaten

    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                using (var db = new MyDataDb())
                {
                    db.Database.Migrate();
    
                    var d = db.MyDatas.ToList();
                }
            }
        }
    
        public class MyData
        {
            public int MyDataId { get; set; }
            public string Foo { get; set; }
            public string Bar { get; set; }
        }
    
        public class MyDataDb : DbContext
        {
            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                optionsBuilder.UseSqlite("Data Source=AppFlyer.db");
            }
    
            protected override void OnModelCreating(ModelBuilder builder)
            {
                //Test daten
                builder.Entity<MyData>().HasData(
                        new MyData[]
                        {
                            new MyData() { MyDataId = 1, Foo = "Foo", Bar = "Bar" },
                            new MyData() { MyDataId = 2, Foo = "Foo", Bar = "Bar" },
                            new MyData() { MyDataId = 3, Foo = "Foo", Bar = "Bar" }
                        }
                    );
    
                base.OnModelCreating(builder);
            }
    
            public DbSet<MyData> MyDatas { get; set; }
        }
    }


    Gruß Thomas
    13 Millionen Schweine landen jährlich im Müll
    Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings

    Dienstag, 24. September 2019 11:36