Преобразуйте анонимный тип в класс

Если вы хотите использовать механизмы кэширования, например Redis или Memcached , возможно, выбор DALMP может быть выбран. Он использует чистый MySQLi . Проверьте это: Уровень абстракции базы данных DALMP для MySQL с использованием PHP.

Кроме того, вы можете «подготовить» свои аргументы перед подготовкой своего запроса, чтобы вы могли создавать динамические запросы и в конце имеют полностью подготовленный запрос. Уровень абстракции базы данных DALMP для MySQL с использованием PHP.

24
задан DOK 1 February 2011 в 14:17
поделиться

2 ответа

Ну, Вы могли использовать:

var list = anBook.Select(x => new ClearBook {
               Code = x.Code, Book = x.Book}).ToList();

, но не, нет никакой прямой поддержки преобразования. Очевидно, необходимо будет добавить средства доступа, и т.д. (не обнародуйте поля) - я предположил бы:

public int Code { get; set; }
public string Book { get; set; }

, Конечно, другая опция состоит в том, чтобы запуститься с данных, как Вы хотите его:

var list = new List<ClearBook> {
    new ClearBook { Code=10, Book="Harry Potter" },
    new ClearBook { Code=11, Book="James Bond" }
};

существуют также вещи, которые Вы могли сделать для отображения данных с отражением (возможно, использование Expression, чтобы скомпилировать и кэшировать стратегию), но это, вероятно, не стоит того.

44
ответ дан LeopardSkinPillBoxHat 28 November 2019 в 22:45
поделиться

Как Marc говорит, это может быть сделано с отражательными и деревьями выражений... и по стечению обстоятельств, существует класс в MiscUtil, который делает точно это. Однако смотря на Ваш вопрос более тесно это кажется, что Вы хотите применить это преобразование в набор (массив, список или безотносительно) без цикличного выполнения . Это не может возможно работать. Вы преобразовываете от одного типа до другого - он не похож на Вас, может использовать ссылку на анонимный тип, как будто это - ссылка на ClearBook.

Для предоставления примера того, как класс PropertyCopy работает, хотя, Вам просто было бы нужно:

var books = anBook.Select(book => PropertyCopy<ClearBook>.CopyFrom(book))
                                 .ToList();
11
ответ дан Jeff Yates 28 November 2019 в 22:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: