2012-04-08 3 views
1

Ich bin für ein Werkzeug oder eine Technik, die ich auf eine Tabelle in einer SQL Server-Datenbank zeigen kann, für eine DTO-Klasse für generieren Diese Tabelle AND dann generieren DTO Class INSTANCES für jede Zeile in dieser Tabelle.Tool zum Generieren von C# DTO-Klasse für SQL-Tabelle UND DTO-Instanzen für jede Zeile in Tabelle

eine Tabelle in SQL Server

CREATE TABLE 
[dbo].[Tickets](
[TicketID] [int] IDENTITY(1,1) NOT NULL, 
[TicketName] [varchar](50) NOT NULL, 
CONSTRAINT [PK_Tickets] PRIMARY KEY CLUSTERED ([TicketID] ASC) 

Bestücken mit Daten Gegeben:

public int TicketID {get;set;} 
public string TicketName {get;set;} 

und dann so etwas wie:

TicketID TicketName 
1   Green 
2   Blue 

Würde eine Klasse namens "Ticket" mit Eigenschaften erzeugen :

public List<Tickets> LoadDataIntoListOfTickets() 
{ 
    List<Tickets> theList = new List<Tickets>; 
    theList.Add(new Ticket(){TicketID = 1, TicketName = "Green"}); 
    theList.Add(new Ticket(){TicketID = 2, TicketName = "Blue"}); 
    return theList; 
} 

Ich möchte keine INSERT-Anweisungen zum Senden an SQL Server generieren. Ich möchte DTO-Klasse und Instanzen für die Daten erstellen.

Klarstellung: Ich suche nach einer Code-Generierung der DTO-Klasse und den Quellcode für die DTO-Instanzen für jede Zeile in den Daten, wie es zu einem bestimmten Zeitpunkt existiert. Ich kenne die verschiedenen ORMs, die die Klassen erstellen können. Nach was ich suche, ist etwas, das die LoadDataIntoListOfTickets() Auflistung mit einer Zeile Quellcode für jede ROW in der Datenbank generiert. (Hoffentlich macht dies klar.)

Erläuterung # 2: Dies wird verwendet, um SQL-INSERT-Anweisungen in einer Textdatei zum Initialisieren von Tabellen zu ersetzen, wenn der Benutzer eine neue Datenbank für eine Anwendung erstellt. Mit einer Textdatei mit den SQL INSERT-Anweisungen konnte ich traditionelle Versionskontrolltools verwenden, um unseren Datenbankinitialisierungsprozess zu verwalten. Es funktioniert wirklich gut, aber es ist nicht so gut lesbar (Leerzeichen/Ausrichtung) oder wiederverwendbar wie das Speichern der Daten in DTO-Instanzen wäre. Serialisierung in XML würde die Lesbarkeit reduzieren. Binäre Serialisierung würde (von Natur aus) es NICHT für Menschen lesbar machen und würde es auch nahezu unmöglich machen, einen aussagekräftigen Vergleich mit früheren Versionen durchzuführen.

Kennt jemand ein Werkzeug oder eine Bibliothek, die das tun können?

+0

Hast Du bei der ORM-Tools angesehen? Entitätsrahmen? LINQ-zu-SQL? nHibernate? –

+0

Auch: kleine Notiz - normalerweise würden Sie nicht absichtlich * alle * Zeilen lesen - nur die, die Sie in einer entsprechend gefilterten Teilmenge benötigen –

+0

Vielleicht muss ich in meiner Frage klarer sein. Ich werde es bearbeiten. – AZDev

Antwort

1

Wenn Sie wirklich sind nach ist eine Möglichkeit, eine neue Datenbank von nichts zu erhalten, enthält eine Datenbank ein Schema und eine erste Reihe von Daten, dann würde ich empfehlen, Sie in Datenbanken Migrationstools. Sie helfen Ihnen, die Dinge für mehrere Installationen/Umgebungen lesbar und synchron zu halten.

hier können Sie ein paar finden aufgelistet: https://stackoverflow.com/questions/8033/database-migration-library-for-net

Mir persönlich gefällt https://github.com/dradovic/MigSharp