Попытаться присоединить динамическое к POCO использование PetaPoco? - PullRequest
0 голосов
/ 18 ноября 2011

Существует ~ 100 родительских таблиц, все с RECID в качестве столбца идентификации. Ни у одного из родителей нет одинакового RECID. Существует одна дочерняя таблица с внешним ключом RECID.

Я попытался использовать следующую идею, когда туманность варьируется в домене таблицы 100 по требованию пользователя:

var stuff = _d.Query<dynamic, sameAgain, dynamic>(
    new Relator().relatem,
    "select * from nebulous as n left join sameAgain on n.RECID = RECID"
    );
...
class dynamic Relator {
    relatem(dynamic parent, sameAgain child)
    {
       // inspired by the most recent blog Multi-POCO in PetaPoco

       ... (parent as IDictionary<string, object>)["RECID"] ...
    }
} 

Без кубиков. Я попал туда и смутился, потому что отладчик показывал объекты не ExpandoObjects для родителя. Поэтому я попытался заменить динамический ExpandoObject.

Все еще нет игры в кости. Так что это остается интересным тупиком. Кто-нибудь пробовал это?

1 Ответ

0 голосов
/ 22 ноября 2011

По умолчанию PetaPoco отключает динамическую функцию с помощью '#define PETAPOCO_NO_DYNAMIC' в верхней части файла PetaPoco.cs. Если вы хотите использовать функцию Dynamic, закомментируйте эту строку и перестройте (для этого, конечно, требуется .net 4.0). Если динамическая функция включена и запрос выполнен успешно, записи будут отображаться как ExpandoObject при отладке вместо объекта.

...