SQL< - > Class(De)Serializer?

时间:2009-12-19 11:06:48

标签: c# .net sql reflection ado.net

今天我学到了这个

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

我必须将这个类与我从远程站点拉出的json相匹配。它节省了我很多时间,我可以编写类,而不用担心处理数据并将它们放入类中。我也不需要在任何地方使用属性。 Example here

是否有可用于T-SQL的lib(我希望支持MySQL和SQLite)允许我编写类似下面的类并轻松做类似的事情

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

2 个答案:

答案 0 :(得分:2)

您需要的是对象关系映射框架,例如NHibernate或Subsonic。

维基百科有一个很好的list of ORM frameworks for .NET

答案 1 :(得分:1)

看看linq-to-sql,这个站点运行的映射器。

http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx