2009-12-19 3 views
0

Aujourd'hui, je l'ai apprisSQL <-> Classe (De) Sérialiseur?

JavaScriptSerializer ser = new JavaScriptSerializer(); 
Foo foo = ser.Deserialize<Foo>(jsonSz); 

je devais correspondre à la classe avec le JSON je tirais à partir d'un site distant. Cela m'a sauvé beaucoup de temps que je pouvais juste écrire la classe et ne pas m'inquiéter de traiter les données et de les mettre dans la classe. Je n'ai pas non plus besoin d'utiliser des attributs partout. Example here

Y at-il un lib je peux utiliser pour T-SQL (qui je l'espère supporte MySQL et SQLite) pour me permettre d'écrire des classes comme ci-dessous et facilement faire quelque chose comme

results = doSomething<User>(@"select id WHERE username=? password=?", user, hash(pass)); 
//results is null or results.id is the only initialize value. 
class User 
{ 
    [primary_key] 
    long id; 
    string username; 
    byte[] password; 
    DateTime create, lastLogin; 
    string? signature; //the only column that is allow to have null. 
    //etc 
} 
class Comment 
{ 
    [primary_key] 
    long id; 
    User author; //automatically uses user as a reference foreign key 
    Comment parent; //may be 0 to stand for root. But all PK start at 1 so does this cause trouble when using foreign keys? 
    DateTime post; 
    string comment; 
} 
//I have no idea how a query for a comment with each of its children comment going 5 deep would look like 
//I wouldn't mind writing all SQL queries 

Répondre

2

Qu'est-ce que vous avez besoin est un framework de mapping relationnel d'objet tel que NHibernate ou Subsonic.

Wikipédia a une bonne list of ORM frameworks for .NET.

Questions connexes