2011-11-18 61 views
0

有〜100個父表,所有都以RECID作爲其標識列。沒有兩個父母包含相同的RECID。有一個帶有外鍵的子表RECID。嘗試使用PetaPoco動態地加入POCO?

我試着用以下的想法,其中模糊的用戶需求變化在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替換動態。

還沒有骰子。所以它仍然是一個有趣的死衚衕。有沒有人試過這個?

回答

0

默認情況下,PetaPoco使用PetaPoco.cs文件頂部的'#define PETAPOCO_NO_DYNAMIC'禁用動態功能。如果你想使用動態功能,註釋掉線並重建(這當然需要.net 4.0)。如果啓用了動態功能並且查詢成功,則在調試時記錄將顯示爲ExpandoObject而不是Object。