Objekte aus Tabellen generieren

29/12/2008 - 15:39 von Dominik Amon | Report spam
hallo

Ich habe eigentlich eine recht einfache Anfrage, die allerdings scheinbar
sehr "tricky" in der Umsetzung ist.
Habe mit mit "select * from SYS_USER for xml auto, xmlschema" ein Export
einer Tabelle mit Schema samt Werte exportiert in in ein XML Dokument.
Das Schema hab ich in eine XSD gepackt, die Daten in ein einfaches XML.

Ich würde daraus gerne (automatisch) C# Klassen erstellen, die auch gleich
mit den Daten befüllt sind (quasi deseralisieren).

Ich habe mich jetzt schon ein wenig mit der XSD.EXE beschàftigt, diese hat
jedoch Probleme Klassen zu erzeugen, wenn externe Schemata eingebunden
werden (wie im oberen Falle <xsd:import
namespace="http://schemas.microsoft.com/sqlser...ypes"
schemaLocation="http://schemas.microsoft.com/sqlser....xsd"
/>)

Da ich doch mehrere Tabellen habe mit vielen Daten haben, würde ich das
gerne "automatisch" generieren, habt ihr da Ideen?

lg
dominik
 

Lesen sie die antworten

#1 Frank Dzaebel
29/12/2008 - 17:36 | Warnen spam
Hallo Dominik,

Ich habe eigentlich eine recht einfache Anfrage, die allerdings
scheinbar sehr "tricky" in der Umsetzung ist.
Habe mit mit "select * from SYS_USER for xml auto, xmlschema" ein
Export einer Tabelle mit Schema samt Werte exportiert in in ein XML
Dokument. Das Schema hab ich in eine XSD gepackt, die Daten in ein
einfaches XML. Ich würde daraus gerne (automatisch) C# Klassen erstellen,
die auch
gleich mit den Daten befüllt sind (quasi deseralisieren).



ggf. einfach eine Gespeicherte Prozedur wie:

USE [AdventureWorks]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[AlleUser] AS
BEGIN
SET NOCOUNT ON;
select * from master.sys.sysusers
END
____________

erstellen/aktualisieren, dann diese aus dem ServerExplorer
in eine neue "Linq To SQL" Klasse ziehen.
Danach anprogrammieren zum Beispiel über:

DbDataContext dc = new DbDataContext();
var user1 = dc.AlleUser().Last();
StringBuilder sb = new StringBuilder();
sb.AppendLine("User-uid = " + user1.uid);
sb.AppendLine("User-createDate = " + user1.createdate);
sb.AppendLine("User-name = " +user1.name);
MessageBox.Show(sb.ToString());


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen