SQL <-> Класс (De) Сериализатор? - PullRequest
0 голосов
/ 19 декабря 2009

Сегодня я узнал это

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

Я должен был сопоставить класс с JSON, который я брал с удаленного сайта. Это сэкономило мне много времени, так как я мог просто написать класс и не беспокоиться об обработке данных и их вводе в класс. Мне также не нужно было везде использовать атрибуты. Пример здесь

Есть ли библиотека, которую я могу использовать для T-SQL (которая, я надеюсь, поддерживает 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 ]

2 голосов
/ 19 декабря 2009

То, что вам нужно, это инфраструктура реляционного сопоставления объектов, такая как NHibernate или Subsonic.

В Википедии есть хороший список платформ ORM для .NET .

1 голос
/ 19 декабря 2009

Посмотрите на linq-to-sql, или mapper, на котором работает этот сайт ..

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...