RFD, mySQL и вложенные объекты
От: kuu  
Дата: 16.07.04 20:19
Оценка:
Пример маппинга вложенных классов:

public class RecordHeader
{
    public int    ID;
    public string Name;
}

public class Category
{
    public RecordHeader Header = new RecordHeader();
    public string       Description;
}

static ArrayList GetAllCategories()
{
    using (DbManager db = new DbManager())
    {
        return db
            .SetCommand(@"
                SELECT
                    CategoryID   as [Header.ID],
                    CategoryName as [Header.Name],
                    Description
                FROM Categories")
            .ExecuteList(typeof(Category));
    }
}


Однако, mySQL (во всяком случае, 3.23) не поддерживает псевдонимы полей с точками: в ответ на "as Header.ID" выдаётся ошибка. Я считаю, что в будущих версиях RFD стоит добавить возможность менять символ-разделитель при маппинге вложенных объектов.
... << RSDN@Home 1.1.3 stable >>
Re: RFD, mySQL и вложенные объекты
От: IT Россия linq2db.com
Дата: 16.07.04 21:33
Оценка:
Здравствуйте, kuu, Вы писали:

Воспользуйся другим способом:

public class RecordHeader
{
    public int    ID;
    public string Name;
}

[MapField("CategoryID",   "Header.ID")]
[MapField("CategoryName", "Header.Name")]
public class Category
{
    public RecordHeader Header = new RecordHeader();
    public string       Description;
}

static ArrayList GetAllCategories()
{
    using (DbManager db = new DbManager())
    {
        return db
            .SetCommand(@"
                SELECT
                    CategoryID,
                    CategoryName,
                    Description
                FROM Categories")
            .ExecuteList(typeof(Category));
    }
}


Должно работать.
... << Rsdn@Home 1.1.4 beta 1 >>
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: RFD, mySQL и вложенные объекты
От: kuu  
Дата: 17.07.04 16:44
Оценка:
Здравствуйте, IT, Вы писали:

IT>[/c#]

IT>Должно работать.

Глупая я голова
Спасибо, воспользуюсь.
... << RSDN@Home 1.1.3 stable >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.